Mysql基础1 (索引)

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。

相关文章:

  1. Mysql基础1(索引)
  2. Mysql基础2(引擎,体系结构,查询机制))
  3. Mysql基础3(事务,锁,mvcc)
  4. Mysql基础4(深入理解mvcc)

文章目录:

1.索引是mysql实现的嘛?

2.为什么要用索引?

3.什么是B+ tree?

4.B+ tree与B- tree的区别:

5.索引补充知识点


1.索引是mysql实现的嘛?

                              

                                                                               mysql的体系结构

            正确的创建合适的索引是提升数据库查询性能的基础
        索引是什么? 

        索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构

                

2.为什么要用索引?

1)索引能极大的减少存储引擎需要扫描的数据量

2)索引可以把随机IO变成顺序IO

3)索引可以帮助我们进行分组排序等操作,避免使用临时表

3.什么是B+ tree?

首先如果是链式结构,查找的效率不高,所以肯定是要利用树形结构,但是利用树形结构首先来看:

1)二叉查找树

                              

                                                              二叉树结构图

                                                

缺点:

         1.它太深了:数据处的深度决定它的IO操作次数,IO操作消耗大;

         2.它太小了:每个节点保存的数据量太少了,没有很好利用磁盘IO的读写能力;

2)多路平衡二叉树:

                             

3)加强版多路平衡二叉树(b+树):

                           

4.B+ tree与B- tree的区别:

1.b+节点关键字搜索采用闭合区间

2.b+非叶子节点不保存数据相关的信息,只保存关键字和子节点的引用

3.b+关键字对应的数据保存在叶子节点中

4.b+叶子节点是顺序排序的,并且相邻节点具有顺序引用的关系

为什么要选用B+ tree?

1)b+树是变种多路绝对平衡查找树,拥有b-树的优势

2)b+树扫库,表能力更强

3)B+树的磁盘读写能力更强

4)b+树的排序能力更强

5)b+树的查询效率更加稳定

mysql中b+tree索引体现形式 ---Myisam

                               

                                                                                      myisam

                                  

mysql中b+tree索引体现形式 ---Innodb

      以主键索引组织为数据结构

      聚集索引:数据库表行中数据的物理顺序与键值的逻辑顺序相同;

                                              

                                            

          InnoDB和myisam

                                    

5.索引补充知识点

     列的离散性

                         

最左匹配原则:

                             

联合索引列选择原则
1, 经常用的列优先 【最左匹配原则】
2, 选择性(离散度) 高的列优先【离散度高原则】
3, 宽度小的列优先【最少空间原则】
                       

覆盖索引: 

   1.如果查询列可通过索引节点中的关键字直接返回, 则该索引称之为覆盖索引。
   2.覆盖索引可减少数据库IO, 将随机IO变为顺序IO, 可提高查询性能。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值