mysql知识点(B/B+数据结构)
mysql知识点
先放出友情链接
事务的说明探讨
参考:1
mysql知识点
mysql事务实现:MVCC概念
组合索引:innodb 索引会带上当前的索引,同时加上主键Id,order 也会用索引
-
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.
也是一种方法 mysql explan 中type含义: 文章
B树 B+数区别 :文章
1
2
3
4
5
6
7
8B树和B+树的区别
这都是由于B+树和B具有这不同的存储结构所造成的区别,以一个m阶树为例。
1. 关键字的数量不同;B+树中分支结点有m个关键字,其叶子结点也有m个,其关键字只是起到了一个索引的作用,但是B树虽然也有m个子结点,但是其只拥有m-1个关键字。
2. 存储的位置不同;B+树中的数据都存储在叶子结点上,也就是其所有叶子结点的数据组合起来就是完整的数据,但是B树的数据存储在每一个结点中,并不仅仅存储在叶子结点上。
3. 分支结点的构造不同;B+树的分支结点仅仅存储着关键字信息和儿子的指针(这里的指针指的是磁盘块的偏移量),也就是说内部结点仅仅包含着索引信息。
4. 查询不同;B树在找到具体的数值以后,则结束,而B+树则需要通过索引找到叶子结点中的数据才结束,也就是说B+树的搜索过程中走了一条从根结点到叶子结点的路径。
mysql知识点(B/B+数据结构)