MySQL索引入门

MySQL索引入门

索引于MySQL数据库,就像是目录于书籍,读者可以通过目录可以快速定位到自己想要的内容。同时,索引基本是对MySQL进行查询性能优化最有效的手段。

因为MySQL的索引是在引擎层而不是服务器层实现的,所以不同存储引擎的索引的种类和工作方式是不同的,即便看起来相同,底层实现逻辑也可能大相径庭。下面列举一下MySQL支持的索引种类:

  1. B-Tree索引(其实使用B+Tree实现)
    • 一般来说,如果没有特别说明,MySQL的索引都会是B-Tree索引。
    • 虽然叫做B-Tree索引,但其实很多存储引擎使用的是B+Tree(比如InooDB引擎),通过让每一个叶子节点包含住指向下一个叶子节点的指针,来方便叶子节点的范围遍历。
    • B+Tree是一种平衡多叉树(数据结构有序且平衡,索引的性能消耗也来自其为保持有序和平衡而做的数据调整)
    • B-Tree索引之所以能加快速访问数据的速度,是因为它不需要进行全表的扫描来获取数据,而是通过从索引的根节点开始进行搜索(复杂度马上从N级别降低到log m(N)级别),往下查找,找到叶子节点(叶子节点指针就是指向数据)或找不到合适的叶子节点(数据找不到)为止。

MySQL索引入门

上一篇:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Standard


下一篇:oracle报错【ORA-01017:用户名/口令无效;登录被拒绝】问题处理