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)的索引,那么只须要修改原来的索引便可(索引越少越好;缘由:主要在修改数据时,每一个索引都要进行更新,下降写速度)。大数据

相关文章
相关标签/搜索