MySQL為什么會索引失效?_MySQL教程

      編輯Tag賺U幣
      教程Tag:索引失效添加

      推薦:MySql大批量導入數據優化
      對于MyISAM: a.alter table table_name disable keys b.loading data c.alter table table_name enable keys 對于Innodb: a.將要導入的數據按照主鍵排序 b.set unique_checks=0,關閉唯一性校驗 c.set autocommit=0,關閉自動提交

      索引并不是時時都會生效的,比如以下幾種情況,將導致索引失效:

      如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什么盡量少用or的原因)

      注意:要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引

      2.對于多列索引,不是使用的第一部分,則不會使用索引

      3.like查詢是以%開頭

      4.如果列類型是字符串,那一定要在條件中將數據使用引號引用起來,否則不使用索引

      5.如果mysql估計使用全表掃描要比使用索引快,則不使用索引

      此外,查看索引的使用情況

      show status like ‘Handler_read%’;
      大家可以注意:
      handler_read_key:這個值越高越好,越高表示使用索引查詢到的次數
      handler_read_rnd_next:這個值越高,說明查詢低效


      分享:sql語句:SQLServer字段排序(按筆畫,拼音,拼音首字母)
      --按筆畫排序 select ChannelID,ChannelName from dbo.HB_AdChannel order by ChannelName collate chinese_prc_stroke_cs_as_ks_ws --按拼音排序 select ChannelID,ChannelName+Description from dbo.HB_AdChannel order by ChannelName+Description collate chinese_

      來源:未知//所屬分類:MySQL教程/更新時間:2012-10-22
      相關MySQL教程