關於mysql索引的一些疑問,查閱了很多資料,說的都很模糊,有幾種類型的索引不知道怎麼加:
1.groupby的索引要怎麼加?單獨的加一個索引還是和搜尋條件加在一起?
2.有LEFT JOIN的查詢索引要怎麼加,例如
SELECT a.id,FROM a
LEFT JOIN b
ON a.id = b.aid
WHERE a.year = 1 AND b.month = 2
GROUP BY b.a
ORDER BY a DESC
3.像有
SELECT a.id,SUM(a.q+a.w) as day_pv FROM a
ORDER BY day_pv DESC
這樣的索引要怎麼加?
關於索引以及mysql語句優化方面的東西很薄弱。
或有什麼相關的文章或書籍可以推薦的
mysql複合索引與普通索引總結
書籍呢:高性能的mysql(第三版) 索引部分,淘寶那幫翻譯的那部
建索引主要根據表的查詢條件,原則上找資料可選性高的欄位建立索引,如人員id、姓名等,根據這樣的條件可以大幅縮小查詢結果集。
高效能mysql第三版,第五章,專門講解創建高性能的索引,索引主要是針對錶的不同查詢字段建立的,為了縮短查詢時間,提高性能
一般用於排序的欄位要加上B-樹索引,where的欄位需要加上索引,多條件的需要組合索引,索引順序要與條件符合