MySql教程

MySql索引

本文主要是介绍MySql索引,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

MySql有哪些索引?[面试4.0]

主键索引(不允许有空值)
唯一索引(允许有空值)
复合索引(联合索引,多个列)(推荐用这种方式做索引)
聚簇索引
非聚簇索引
普通列索引

MySql的索引结构是怎样的?[面试7.0]

索引是存放到磁盘上的,存放在索引页(逻辑页),索引页就是Btree的叶子节点其默认大小为16KB
在查询数据时,InnoDb通过B+Tree聚集索引找到记录所在的索引页,并载入内存
通过key在索引页的槽中进行二分查找,找到key对应的槽
槽找到后,根据槽管理的记录按顺序找到key对应的记录

MySql索引的储存方式有哪些?它们的优缺点是什么?[面试7.0]

Hash(MySql可选项), B+Tree(MySql默认), B-Tree(已不提供)

Hash:
原理: 存储结构是key-value形式存在数组中,然后通过hash函数(key)得到一个值,这个值就是它们的索引,当取数据的时候,key通过hash得到索引值,直接找就行了,复杂度为O(1)
优点:
查找速度快
缺点:
对范围的查找不支持(主要原因)

这篇关于MySql索引的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!