MySQL/MariaDB数据库的索引工作原理和优化

     MySQL/MariaDB数据库的索引工作原理和优化

                            作者:尹正杰 

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  实际工作中索引这个技术是影响服务器性能一个非常重要的指标,因此我们得花时间去了解一下索引的相关特性。

一.索引概述

1>.什么是索引

  索引是特殊数据结构,定义在查找时作为查找条件的字段,在MySQL又称为键key,索引通过存储引擎实现。

  不是说有了索引性能就一定能提示,有了索引咱们还得会利用索引,用正确的方法使用索引,使用不当反而会降低服务器性能。

2>.索引的优点

  索引可以降低服务需要扫描的数据量,减少了IO次数

  索引可以帮助服务器避免排序和使用临时表
  索引可以帮助将随机I
/O转为顺序I/O

3>.索引的缺点

  占用额外空间,影响插入速度

二.索引类型

  B+ TREE、HASH、R TREE

  聚簇(集)索引、非聚簇索引:
    数据和索引是否存储在一起   主键索引、二级(辅助)索引   稠密索引、稀疏索引:
    是否索引了每一个数据项   简单索引、组合索引:     左前缀索引:取前面的字符做索引     覆盖索引:从索引中即可取出要查询的数据,性能高

1>.二叉树

  

1)每个结点最多2棵子树
    二叉树不存在度数大于2的结点。

(2)它是有序树,左子树,右子树是顺序的,不能交换次序

(3)即使某个节点只有一棵子树,也要确定它是左子树还是右子树

(4)二叉树的物种基本形态
    1)空二叉树
    2)只有一个根结点
    3)根结点只有左子树
    4)根结点只有右子树
    5)根结点有左子树和右子树

博主推荐阅读:
  https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%A0%91
  https://www.cnblogs.com/yinzhengjie/p/10960896.html

2>.红黑树(又叫自平衡二叉树)

 

博主推荐阅读:
  https://baike.baidu.com/item/%E7%BA%A2%E9%BB%91%E6%A0%91

3>.B-tree索引(B-tree(多路搜索树,并不是二叉的)

B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。按照翻译,B 通常认为是Balance的简称。这个数据结构一般用于数据库的索引,综合效率较高。

博主推荐阅读:
  https://baike.baidu.com/item/B-tree/6606402?fr=aladdin

4>.B+树

B+树是一种树数据结构,通常用于数据库和操作系统的文件系统中。B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。B+树元素自底向上插入,这与二叉树恰好相反。

博主推荐阅读:
  https://baike.baidu.com/item/B+%E6%A0%91/7845683

5>.Hash索引

6>.

7>.

8>.

三.

四.

五.

猜你喜欢

转载自www.cnblogs.com/yinzhengjie/p/11762653.html