索引

索引

  • 索引有啥用

    • 因为参考的文献已经将数据库索引讲的很详细了,这边概要的描述一下,具体可看参考文献

    • 使用索引的全部意义就是通过缩小一张表中需要查询的记录/行的数目来加快搜索的速度。

  • 索引是什么

    • 索引是数据结构,通常包括数据库某一列的值,以及对应行所在位置的指针。然后是排好序的。

    • 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)

    • 默认都是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引。

    • 为什么是B+树? 不是B树,优化了哪些地方 (这篇文章告诉你)

  • 索引的优劣

    • 好处自然是减少了磁盘IO,提高了查找效率,

    • 坏处,创建索引也占用一定的空间,而且更新表的时候,索引也需要同步更新,降低了更新效率。

  • B+树有什么特点?和B树有什么区别?

    • B+树和B树最主要的区别在于非叶子节点是否存储数据的问题

    • B树:非叶子节点和叶子节点都会存储数据。叶子节点不相连。

    • B+树:只有叶子节点才会存储数据,非叶子节点至存储键值。叶子节点之间使用双向指针连接,最底层的叶子节点形成了一个双向有序链表。

    • 相对于B树来说,B+树的树高理论上情况下是比B树要矮的。

      B树不支持范围查询的快速查找,你想想这么一个情况如果我们想要查找10和35之间的数据,查找到15之后,需要回到根节点重新遍历查找,需要从根节点进行多次遍历,查询效率有待提高。 如果data存储的是行记录,行的大小随着列数的增多,所占空间会变大。这时,一个页中可存储的数据量就会变少,树相应就会变高,磁盘IO次数就会变大。

    •  
  • 参考文献

    https://www.cyc2018.xyz/%E6%95%B0%E6%8D%AE%E5%BA%93/MySQL.html#%E4%B8%80%E3%80%81%E7%B4%A2%E5%BC%95 https://database.51cto.com/art/202010/629382.htm https://www.cnblogs.com/nullzx/p/8729425.html

  •  

以上内容整理于 幕布文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值