
索引是关系数据库中对数据库表中一列或所列数据进行排序的存储结构。好比是字典的目录
2,索引的应用场景
数据库中存放大量的数据时,直行sql语句将花费较大时间,时间过长将影响用户体验,并且我们应用中大多数接口都具有查询功能,最后都将落在数据库查询中,所以需要提高数据库查询的速度就需要使用到索引,就像通过目录查字典就会很快查到结果
3,数据库查询原理
通过IO读写在磁盘中一块一块查找目标数据,该过程称为全表扫描
4,IO读写是在磁盘中一条一条查,索引也是如此,为什么索引快
因为索引采用了不同的数据结构(B+树),该数据结构在查询上有明显优势
5,索引的分类
主键索引,普通索引,唯一索引,联合索引,全文索引。
其中联合索引需要满足最左前缀法则才能实现索引。
6,索引的物理存放位置
innoDB类型的索引与数据存放在一个文件中
myisam类型的索引和数据分别存放在两个文件中
正常MySQL底层存储索引默认使用的是B+树,但是如果设立了分区表的情况下,他的底层是如何进行存储的呢?
查看MySQL对应的自己电脑上面的安装目录下,是有一个ibd文件,用innblock和bcview两个小工具,(github上可以搜到),便可以实现对ibd文件的查看,通过对比着没有设立分区的表的ibd文件,就可以看出来
分区表会将索引分成分区个个数的索引树来存储索引,也就是分开存储。
默认是这里C:\Program Files\MySQL\MySQL Server 5.5\datamysql的数据库文件不像sqlserver,数据库后缀什么样,自己去看 (数据文件:. myd 索引文件:. MYI 表定义文件:. frm)欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)