Group by 未加索引 使用的是臨時表,加文件排序(數據量小用記憶體排序) 加個索引(一般是聯合索引) 註意:這裡加的索引一般不會僅僅是group by後面的欄位索引(大多數多少條件是一個以該欄位開頭聯合索引,方便使用覆蓋索引或者索引下推)。如果該欄位是一個varchar類型,最好加個int冗餘字 ...
Group by 未加索引
- 使用的是臨時表,加文件排序(數據量小用記憶體排序)
加個索引(一般是聯合索引)
- 註意:這裡加的索引一般不會僅僅是group by後面的欄位索引(大多數多少條件是一個以該欄位開頭聯合索引,方便使用覆蓋索引或者索引下推)。如果該欄位是一個varchar類型,最好加個int冗餘欄位,建立索引的欄位,性能更高。
- 以該欄位為條件的B+樹自動排序,所以就會導致避免了排序和臨時表這個過程,查詢性能更快。
加了索引還是慢(查詢結果的數據量太大)?
在讀多寫少場景:
1. 加個查詢條件的統計表(Group by, order by 還是 count查詢性能都不會太差)!!!!
2. 每次關聯的表發生變化,就更新統計表。
3. 為了性能同時可以用緩存或者ES通過訂閱同步該統計表。