mysql 优化 经验汇总

https://cs.usfca.edu
cs.usfca.edu/~galles/visualization/bst.html

二叉树:小的插入左边,大的插入右边
红黑树:平衡二叉树
B-Tree: 横向存放更多的节点数据(data)

B+tree: 16/(8+6)=1170b,节点从左到右依次递增,非叶子节点不存储数据,只放索引

聚集索引:索引和数据文件放在同一个文件里
非聚集索引:索引和数据文件放在不同的文件里

myi
myd

rowid 隐藏列,mysql引擎自己维护,会占用数据库资源
整型比较大小,字符串逐个字符比较

innodb
myisam

索引是排好序的数据结构
表是排行序的数据文件
O(1)时间复杂度
hash:一维数组+链表,hash冲突问题,不支持范围,支持==, in

联合索引的存储

单字段索引和联合索引
联合索引最左匹配原则

非叶子节点会默认加载到内存,方便提供效率,

1.b树和b+树数据的区别?
b+非叶子节不包含数据,b树所有节点上包含数据
存储树的高度,横向存储数据的长度 16(n)=2000万数据

90% 单表走索引

表关联底层逻辑:NLJ BLJ

db扩容比web应用扩容难得多,所有逻辑从大sql里抽取到c#代码里完成

posted @ 2022-05-08 21:04  大树2  阅读(35)  评论(0编辑  收藏  举报