系统的整理一下索引的内容
1、索引是什么
索引是特定列的值得数据结构,索引包含一个列的值。
数据库索引并不存储这个表中其他列(字段)的值。
索引中不仅有值,还包括当前行的指针。
2、索引的应用
1、数据准备
数据库以mysql为例
建立了一张employee表,有age,name,money列 总共61万多数据(造数据花了些时间。。)
2、常规查询
我进行一次查询
select * from employee where name='蒯斗'
数据库会进行全表扫描,查询出每一个叫这个的名字 相当于扫描60多万次,按时间复杂度来说是O(n), 最终他的查询结果是0.24s
3、索引带来的提升
先建立索引 给name这一列 建立普通索引
ALTER TABLE employee ADD INDEX index_name (name)
再次进行查询,这次换一个名字,怕之前的名字有缓存
执行后,执行时间是0.02s 大大提升了效率。
3、索引的种类
1、主键索引
当某个表将某一列设置成主键的时候,他就是主键索引
2、普通索引
普通索引的创建,是先创建表,然后在创建普通索引
3、唯一索引
索引中的列是唯一的
4、索引的原理
B-Tree 是最常用的用于索引的数据结构。因为它们是时间复杂度低, 查找、删除、插入操作都可以可以在对数时间内完成。另外一个重要原因存储在B-Tree中的数据是有序的
B tree的原理的参考 https://zhuanlan.zhihu.com/p/24309634
参开资料:https://blog.csdn.net/weiliangliang111/article/details/51333169