MySQL索引

开发工作中应该对索引很熟悉了,经常会听到性能不好,价格索引吧,今天我们就一起了解一下MySQL的索引!

索引是什么?

对数据库的表而言,索引其实是它的“目录”。索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。

索引的常见模型

常见的三种索引的数据结构有:哈希表、有序数组和搜索树。

  • 哈希表是一种以键-值(key-value)存储数据的结构,我们只要输入待查找的值即key,就可以找到其对应的值即Value。哈希的思路很简单,把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置。不可避免地,多个key值经过哈希函数的换算,会出现同一个值的情况。处理这种情况的一种方法是,拉出一个链表。
  • 哈希表适用于只有等值查询的场景,区间查询时性能则较差
  • 有序数组在等值查询和范围查询场景中的性能非常优秀,但是有序数组索引只适用于静态存储引擎
  • 搜索树搜索性能很优秀

主键索引和普通索引的查询有什么区别?

InnoDB使用了B+树索引模型,主键查询方式,则只需要搜索主键这棵B+树;普通索引查询方式,则需要先搜索普通索引这颗索引树,得到数据后,再到主键索引树搜索一次

索引维护

索引是树结构的,在插入数据时则可能会有页分裂的情况发生,建议设置自增主键去避免这种情况提高性能。

如果文章对你有帮助,欢迎关注。如果有什么疑问或者指正的可以留言!

MySQL索引》有1条评论

发表回复