作家
登录

90%程序员面试都用得上的索引优化

作者: 来源: 2017-11-14 14:12:35 阅读 我要评论

ps:关于数据构造,有兴趣深刻的同伙可以存眷我后查看【数据构造】专题,这里不做具体讲解。

五、创建索引的原则(重中之重)


1) 最左前缀匹配原则,组合索引异常重要的原则,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的次序可以随便率性调剂。

2)较频繁作为萌芽前提的字段才去创建索引

4)若是不克不及有效区分数据的列不合适做索引列(如性别,男女未知,最多也就三种,区分度实袈溱太低)

5)尽量的扩大索引,不要新建索引。比如表中已经有a的索引,如今要加(a,b)的索引,那么只须要修改本来的索引即可。

个中table_name是要增长索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。

6)定义有外键的数据列必定要建立索引。

7)对于那些萌芽中很少涉及的列,反复值比较多的列不要建立索引。

8)对于定义为text、image和bit的数据类型的列不要建立索引。

百万级别或以上的数据若何删除(真好技巧文)

关于索引:因为索引须要额外的保护成本,因为索引文件是零丁存在的文件,所以当我们对数据的增长,修改,删除,都邑产生额外的对索引文件的操作,这些操作须要消费额外的IO,会降低增/改/删的履行效力。所以,在我们删除数据库百万级别数据的时刻,萌芽MySQL官方手册得知删除数据的速度和创建的索引数量是成正比的。

  1. 所以我们想要删除百万数据的时刻可以先删除索引(此时大年夜概耗时三分多钟)

  2. 3)更新频繁字段不合适创建索引

    然后删除个中无用数据(此过程须要不到两分钟)

  3. 1)B树索引

    删除完成后从新创建索引(此时数据较少了)创建索引也异常快,约十分钟阁下。

  4. 与之前的直接删除绝对是要快速很多,更别说万一删除中断,一切删除会回滚。那更是坑了。

今天,索引的讲解就到这里,重点提一下,索引基来源基本理和创建索引的原则是重点,面试根本必问!大年夜家可以收藏很多多少懂得懂得。

【编辑推荐】

  1. Facebook为Android法度榜样员增长开源新特点,大年夜幅度修改Buck!
  2. MongoDB即将宣布文档数据库3.6版,新功能抢先看!
  3. 25.6万笔/秒的交易还节俭2000台办事器,数据库OceanBase是怎么做到的?
  4. 阿里专家:技巧变更那么快,法度榜样员若何做到不被镌汰?
  5. 嫁给法度榜样员老公,我“懊悔”了!
【义务编辑:张燕妮 TEL:(010)68476606】

1、把创建了索引的列的内容进行排序



  推荐阅读

  瞬间提升命令行的生产力100%

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践关于临盆力的话题老是让人充斥兴趣的。这里有很多方法晋升你的临盆力。今天,我共享一些敕令行的小技能,以及让你的人生>>>详细阅读


本文标题:90%程序员面试都用得上的索引优化

地址:http://www.17bianji.com/lsqh/38841.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)