索引

为什么使用索引

进行全表扫描时会把数据库多块/页加载读取,然后逐个块去轮询找到目标并返回。这种方式在数据量大时会很慢的。要避免全表扫描的发生就要使用索引快速查询数据。

索引的数据结构

  1. 二叉查找树及其变种平衡二叉树、红黑树等

  2. B-Tree

  3. B+-Tree(MySql)

  4. Hash结构

  5. BitMap

二叉树的结构的时间复杂度可能会比较低,但是数据量大时避免不了树的高度过深,这样磁盘的IO次数就会增多,数据库查询的速率还是会很慢。因此还是要看B-Tree/B+-Tree……

B+-Tree更适合用来做存储索引

  1. B+树的磁盘读写代价更低

  2. B+树的查询效率更加稳定 O(logn),因为只有叶子节点才存储文件内容,所以任何关键字的查找必须走一条从根节点到叶子节点的路。

  3. B+树更有利于对数据库的扫描。B树在提高了磁盘IO性能时,并没有解决元素遍历效率低下的问题。B+树只要遍历叶子节点就可以解决对全部关键字信息的扫描。所以对于数据库中频繁使用的范围查询有更高的性能。

posted @ 2019-03-05 17:33  bce1100  阅读(83)  评论(0)    收藏  举报