mysql知识点(B/B+数据结构)

mysql知识点

先放出友情链接

事务的说明探讨

参考:1

mysql知识点

  1. mysql事务实现:MVCC概念

  2. 组合索引:innodb 索引会带上当前的索引,同时加上主键Id,order 也会用索引

  3. mysql order by 工作过程:文章1 | 文章2

    1
    2
    3
    4
    5
    上诉排序问题:sql为:select city,name,age from t where city in ('杭州','苏州') order by name limit 1000;这时候怎么办?
    1: 组合索引的排序规则是city_name 这时候city=杭州 但是name排序不对。
    2: 业务上分别拆分成2条:select city,name,age from t where city='杭州' order by name limit 1000;
    and select city,name,age from t where city='苏州' order by name limit 1000; 然后再业务代码中进行name排序取出前1000.
    也是一种方法
  4. mysql explan 中type含义: 文章

  5. B树 B+数区别 :文章

    1
    2
    3
    4
    5
    6
    7
    8
    B树和B+树的区别

    这都是由于B+树和B具有这不同的存储结构所造成的区别,以一个m阶树为例。
    1. 关键字的数量不同;B+树中分支结点有m个关键字,其叶子结点也有m个,其关键字只是起到了一个索引的作用,但是B树虽然也有m个子结点,但是其只拥有m-1个关键字。
    2. 存储的位置不同;B+树中的数据都存储在叶子结点上,也就是其所有叶子结点的数据组合起来就是完整的数据,但是B树的数据存储在每一个结点中,并不仅仅存储在叶子结点上。
    3. 分支结点的构造不同;B+树的分支结点仅仅存储着关键字信息和儿子的指针(这里的指针指的是磁盘块的偏移量),也就是说内部结点仅仅包含着索引信息。
    4. 查询不同;B树在找到具体的数值以后,则结束,而B+树则需要通过索引找到叶子结点中的数据才结束,也就是说B+树的搜索过程中走了一条从根结点到叶子结点的路径。

作者

邵文星

发布于

2020-06-23

更新于

2023-07-17

许可协议