Mysql索引優化
就像我們經常知道的在數據庫中我們可以通過設置索引來加快查詢的速度。可是如果索引設置不合理也有可能導致非常不好的後果。
我們大家都知道的是mysql默認的引擎是innodb,建議不知道的去了解一下innodb。索引分爲主索引、輔助索引。主索引會維護一個單獨的B+樹,B+樹葉子節點對應行數據。而輔助索引同樣也會維護一個B+樹,它的葉子節點對應主索引。因此如果使用輔助索引的話,就需要兩次搜索B+樹。
下面幾點是我們在建立索引的時候需要注意的:
- 主鍵使用與業務無關的單調自增的數字,這樣的話會減少在更新索引表的調整。
- 在使用聯合索引的,注意聯合索引字段的順序,因爲索引使用的是最左匹配,如果在查詢的時候沒有使用第一列,那麼就不會使用到這個索引。這個要求我們在建立索引的時候需要考慮相應的業務,看業務對哪一個列的查詢比較頻繁並且該列的區分度比較大。
- 主鍵索引不應該過大,因爲輔助索引會利用主鍵索引的值,如果主鍵過大,會導致輔助索引也會增大。