MYSQL order by排序導致效率低小優化
有一個主表left join 同一個小表兩次分頁語句,因為order by 導致執行時做排序,從執行計劃中Using filesort ,以及profile中creating sort index 耗時可以看出。
從trace檔案可以看出filesort的計算:
"join_execution": { "select#": 1, "steps": [ { "filesort_information": [ { "direction": "desc", "table": "`topxxx` `t`", "field": "create_date" } ] /* filesort_information */, "filesort_priority_queue_optimization": { "limit": 20, "rows_estimate": 2302749, "row_size": 264, "memory_available": 4194304, "chosen": true } /* filesort_priority_queue_optimization */, "filesort_execution": [ ] /* filesort_execution */, "filesort_summary": { "rows": 21, "examined_rows": 216594, "number_of_tmp_files": 0, "sort_buffer_size": 5712, "sort_mode": "<sort_key, rowid>" } /* filesort_summary */ } ] /* steps */ } /* join_execution */ }
後面通過索引加入排序欄位後減去排序操作,排序欄位放在索引的最前面。
create index idx_topxxx1 on topic (create_date desc,is_del,is_en);
trace 中可以看出排序使用了索引。
"reconsidering_access_paths_for_index_ordering": { "clause": "ORDER BY", "index_order_summary": { "table": "`topic` `t`", "index_provides_order": true, "order_direction": "desc", "index": "idx_topxxx1", "plan_changed": true, "access_type": "index" } /* index_order_summary */ } /* reconsidering_access_paths_for_index_ordering */ }, {
以此記錄。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-2629893/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 5.7 ORDER BY排序的優化MySql排序優化
- MySQL利用索引優化ORDER BY排序語句MySql索引優化排序
- mysql order by 優化MySql優化
- Mysql優化_ORDER BY和GROUP BY 的優化講解(單路排序和雙路排序)MySql優化排序
- MySQL——優化ORDER BY語句MySql優化
- 【MySQL】order by 原理以及優化MySql優化
- 【MySQL】再說order by 優化MySql優化
- 【MySQL】效能優化之 order by (一)MySql優化
- MySQL Order BY 排序過程MySql排序
- MySQL exists 優化 in 效率MySql優化
- Order by 優化優化
- MySQL order by 排序結果不正確MySql排序
- Mysql表關聯欄位未建索引導致查詢慢,優化後查詢效率顯著提升MySql索引優化
- MYSQL實現ORDER BY LIMIT的方法以及優先佇列(堆排序)MySqlMIT佇列排序
- Mysql優化小結MySql優化
- 【小程式踩坑】小程式頁面pv統計數過高,導致頁面轉化率低
- MySQL distinct 和 order by 排序混淆的替代方案MySql排序
- MySql Order By 多個欄位 排序規則MySql排序
- MYSQL order by排序與索引關係總結MySql排序索引
- mysql按照漢字拼音進行order by排序MySql排序
- mysql update join優化update in查詢效率MySql優化
- MySQL效能優化小結MySql優化
- MySQL最佳化之如何查詢SQL效率低的原因MySql
- 【小程式踩坑系列4】小程式頁面pv統計數過高,導致頁面轉化率低
- MySQL按指定順序排序(order by field的使用)MySql排序
- MYSQL索引優化思維導圖MySql索引優化
- 新手推薦,前端效能優化小整理,效率加倍前端優化
- 【MySQL】order by 原理以及最佳化MySql
- MySQL LIMIT 和 ORDER BY 最佳化MySqlMIT
- Latch導致MySQL CrashMySql
- 小談mysql儲存引擎優化MySql儲存引擎優化
- sqlserver使用order by case when進行優先順序排序SQLServer排序
- order by改分組排序排序
- Mysql 優化——分析表讀寫和sql效率問題MySql優化
- Orderby 排序優化排序優化
- 外部排序優化排序優化
- MYSQL 中 exists 語句執行效率變低MySql
- MySql 日常指導,及大表優化思路MySql優化