資料庫排序在很多業務系統都有這方面的硬性要求,但是很多情況下大資料表的排序查詢很是緩慢,查了下資料,現在總結如下:
可以適當調大 sort_area_size 的值( 10240000=10m )
alter system set sort_area_size=10240000 scope=spfile;
在10g中也可以直接調大pga的最大值
alter system set pga_aggregate_target=512m scope=spfile
;
但這樣做也只是提高了一點排序效能,還是達不到系統速度要求,查詢要快,要見索引,所以我們幫排序字段建立上索引,但是要讓orderby能呼叫到索引還需要一些嚴格的條件:
order by中所有的列必須包含在相同的索引中並保持在索引中的排列順序.
order by中所有的列必須定義為非空.
當我們設好以後,orderby的速度變得很快,完全達到系統的要求,1張400萬資料的錶用時間排序只需要幾十毫秒。
但是在實際應用中還是有些問題,還需進一步研究。
優化 ORDER BY 語句
一 mysql 中兩種排序方式 1 第一種通過有序索引順序掃瞄直接返回有序資料,這種方式在使用 explain 分析查詢的時候顯示為 using index 即通過索引列就能返回所需要的資料 不需要額外的排序,操作效率較高。mysql explain select customer id from ...
MySQL優化order by語句
優化order by語句 mysql的兩種排序方式 1.第一種就是通過有序索引順序掃瞄直接返回資料,常見的是使用explain分析查詢extra顯示using index,這種情況不需要額外的排序,高效率。2.通過返回資料進行排序,通常是使用explain分析查詢語句使用extra表示filesor...
MySQL 優化 ORDER BY 優化
本文翻譯自mysql 官網 order by optimization,mysql 版本 5.7。這一部分描述了mysql何時會使用索引來滿足order by子句,filesort 操作會在索引不能生效的時候被用到,以及優化器對order by的執行計畫資訊。order by後面有沒有跟著limit...