课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
索引是服务器架构过程中需要添加的一项重要功能之一,而今天我们就通过案例分析来了解一下,MySQL服务器索引的原理以及应用场景都有哪些。
一、索引原理
1.使用索引为什么会快?
btree类型的索引,就是使用的二分查找法,肯定快啊,算法复杂度是log2N,也就是说16条数据查4次,32条数据查5次,64条数据查6次....依次类推。
btree方式检索,算法复杂度:log2N
2.索引的代价
磁盘占用空间增多
对dml(updatedeleteinsert)语句的效率影响
二、索引类型
简述mysql四种索引的区别:
PRIMARY索引:在主键上自动创建
UNIQUE索引:只要是UNIQUE就是Unique索引。(只能在字段内容不重复的情况下,才能创建索引)
INDEX索引:普通索引
FULLTEXT:只在MYISAM存储引擎支持,目的是全文索引,在内容系统中用的多,在全英文网站用多(英文词独立).中文数据不常用,意义不大,国内全文索引通常使用sphinx来完成,全文索引只能在char、varchar、text字段创建
三、关于增加索引中的原则
索引列数好在1-2
根据where条件创建索引,select的字段不要包含什么索引(用*号)
不要过多用索引,否则对表更新的效率有很大的影响,因为在操作表的时候要化大量时间花在创建索引中
对于复合索引,在查询使用时,好将条件顺序按找索引的顺序,这样效率高
不要试图分别基于单个列建立多个单列索引(因为虽然有多个单列索引,但是MySQL只能用到其中的那个它认为似乎有效率的单列索引)
四、哪些列上适合添加索引
较频繁的作为查询条件字段应该创建索引
性太差的字段不适合单独创建索引,即使频繁作为查询条件
更新非常频繁的字段不适合创建索引
不会出现在WHERE子句中的字段不该创建索引
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。