美文网首页
MySQL整理

MySQL整理

作者: SlowGO | 来源:发表于2019-02-08 19:56 被阅读2次

    为什么使用 b+ tree 存储索引?

    二叉树的高度太高,红黑树比二叉树好,但高度也不可控,b+ tree 的高度是恒定的。

    可以到 https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 上查看不同数据结构的效果。

    而且b+ tree 只在叶子节点中存储数据,叶子节点间也是顺序链接的,索引做范围查找时非常高效。

    聚集索引 以主键为索引来组织数据的方式。

    为什么要用自增ID做主键?

    插入层面:

    在逻辑的数据结构上,自增ID插入时始终是在树的最后,否则插入时是没有规律的,树的裂变会更加复杂,而且比较成本比数字更高。

    在物理存储上,自增ID可以使page空间连续申请,没有碎片,否则,申请空间时会产生碎片,而且在树的分裂后物理数据需要移动,影响效率,也会产生碎片。建立副索引时,叶子节点存储非自增ID的数据时空间成本也更高。

    查询层面:

    自增ID方式寻址更快,例如UUID的查找比较肯定弱于自增数字。

    业务层面:可以隐藏业务数据。

    相关文章

      网友评论

          本文标题:MySQL整理

          本文链接:https://www.haomeiwen.com/subject/ydyosqtx.html