天天看點

mysql索引優化要點

可以使用B-tree索引的查詢類型:

  • 全值比對:和索引中的所有列進行比對
  • 比對最左字首:即使用索引的第一列
  • 比對列字首:即比對索引的第一列值的部分
  • 比對範圍值:比對索引值的範圍
  • 精确比對某一列并範圍比對另外一列
  • 隻通路索引的查詢

B-Tree索引限制:

  • 如果不是按照索引的最最左列開始查找則無法使用索引。
  • 不能跳過索引中的列,即不能直接使用索引中中間的列,隻能使用索引第一列
  • 如果查詢中有某個清單的範圍查詢,則其右邊所有的列都無法使用索引優化查找,如

    like

    ,

    !=

    等。如果查詢值的範圍有限制,那麼可以通過使用多個等于條件來代替範圍條件。

哈希索引說明:

  • 存儲引擎會對資料列計算一個hash值
  • 哈希索引隻支援等值比較查詢。
  • 哈希索引的速度非常快,除非有很多哈希沖突。
  • 哈希索引不是按照索引值順序存儲的,是以不能用于排序
  • 哈希索引不支援部分索引列比對查找