記MySQL一次關於In的優化
MySQL版本:5.6.14
詳見MySQL技術內幕:SQL程式設計 102頁
files表記錄的是dfs系統中的檔案資訊.
有一批資料上傳出現錯誤,需要重新上傳.
錯誤檔案的範圍已經記錄在了test.files_20170206表中。
執行如下查詢,竟然很長時間沒有結果.
使用explain extended 檢視執行計劃
原來的SQL,使用了Exists方式.
改寫SQL如下,實際上就是加了一層巢狀.
經過改寫之後,就符合了原來的預期,先將結果儲存為一個臨時表.然後通過臨時表再查資料.
詳見MySQL技術內幕:SQL程式設計 102頁
files表記錄的是dfs系統中的檔案資訊.
有一批資料上傳出現錯誤,需要重新上傳.
錯誤檔案的範圍已經記錄在了test.files_20170206表中。
執行如下查詢,竟然很長時間沒有結果.
-
select * from files t1 where (oldpath,flen) in (
-
select oldpath,max(flen) from files f where oldpath in
-
(select oldpath from test.files_20170206 )
-
group by oldpath
- )
使用explain extended 檢視執行計劃
原來的SQL,使用了Exists方式.
改寫SQL如下,實際上就是加了一層巢狀.
-
select * from files t1 where (oldpath,flen) in (
-
select * from (
-
select oldpath,max(flen) from files f where oldpath in
-
(select oldpath from test.files_20170206 )
-
group by oldpath
-
) a
- )
經過改寫之後,就符合了原來的預期,先將結果儲存為一個臨時表.然後通過臨時表再查資料.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2133135/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於mysql的優化MySql優化
- 記一次關於Laravel model查詢返回大量資料的效能優化Laravel優化
- 記一次mysql 4.5GB大表優化MySql優化
- 關於 es 資料同步的一次效能優化實踐優化
- 記一次UITableView優化UIView優化
- 記一次sql優化SQL優化
- 記一次golang的gzip優化Golang優化
- 關於redis記憶體分析,記憶體優化Redis記憶體優化
- MySQL 優化筆記MySql優化筆記
- 筆記mysql優化筆記MySql優化
- MySQl優化筆記MySql優化筆記
- 記一次Node專案的優化優化
- 記一次前端效能優化的案例前端優化
- 記一次我的 MySQL 調優經歷MySql
- ? 記一次前端效能優化前端優化
- 記一次分頁優化優化
- 記錄一次打包優化優化
- 一次sql優化小記SQL優化
- 關於mysql的最佳化MySql
- mysql 關於大資料量日誌表的優化過程MySql大資料優化
- Mysql的優化的相關知識MySql優化
- 基於mysql資料庫 關於sql優化的一些問題MySql資料庫優化
- MySQL 筆記 - 索引優化MySql筆記索引優化
- 關於SQL優化的闢謠SQL優化
- 關於sql語句的優化SQL優化
- 記一次提升18倍的效能優化優化
- 關於首屏優化優化
- 記一次 Webpack 專案優化Web優化
- 記一次Elasticsearch優化總結Elasticsearch優化
- 記一次效能優化經歷優化
- mysql關聯查詢優化MySql優化
- mysql優化篇(基於索引)MySql優化索引
- 記一次真實的webpack優化經歷Web優化
- 記一次優化ansible inventory的小例子優化
- 記一次卓有成效的SQL優化SQL優化
- 關於SQL優化的小知識SQL優化
- 關於sap效能優化的問題優化
- MySQL 優化實戰記錄MySql優化