mysql 索引管理原則

  最近在學習mysql的索引優化,結合着咱們網盟系統的一些業務,翻閱一些資料,整理出以下的一些想法:mysql

  一、索引創建的原則一:最左前綴匹配原則 ,很是重要的原則,mysql會一直向右匹配直到遇到範圍查詢(>、<、between、like)就中止匹配,好比 a = 1 and b = 2 and c > 3 and d = 4 若是創建(a,b,c,d)順序的索引,d是用不到索引的,若是創建(a,b,d,c)的索引則均可以用到,a,b,d的順序能夠任意調整sql

  二、儘可能選擇區分度高的列做爲索引,區分度的公式是count(distinct col)/count(*),表示字段不重複的比例,比例越大咱們掃描的記錄數越少,惟一鍵的區分度是1,而一些狀態、性別字段可能在大數據面前區分度就是0,那可能有人會問,這個比例有什麼經驗值嗎?使用場景不一樣,這個值也很難肯定,通常須要join的字段咱們都要求是0.1以上,即平均1條掃描10條記錄學習

  三、儘可能的擴展索引,不要新建索引。好比表中已經有a的索引,如今要加(a,b)的索引,那麼只須要修改原來的索引便可(索引越少越好;緣由:主要在修改數據時,每一個索引都要進行更新,下降寫速度)。大數據

相關文章
相關標籤/搜索