mysql 数据结构
常用 innodb 存储为 B+ 树
特点
-
多路平衡树,m 个子树中间节点就包含 m 个元素,一个中间节点是一个 page(磁盘页) 默认 16 kb;
-
子节点保存了全部得元素,父节点得元素是子节点的最大或者最小元素,而且依然是有序得;
-
节点元素有序,叶子节点双向有序,便于排序和范围查询。
优势
-
平衡查找树,logn 级别 crud;
-
单一节点比二叉树元素更多,查询 io 次数更少;
-
所有查询都要查询到叶子节点性能稳定;
-
所有节点形成逻辑有序链表,便于排序查询范围查询。
索引
优化索引是提升性能主要手段,主要用到的索引基本为以下三种:
-
聚簇索引
一般表会用自增主键做聚集索引,没有的话 mysql 会默认创建,但是一旦确定之后这个主建得更改代价就会很高,所以建表时候要考虑自增主建不能频繁 u