0%

SQL必知必会

B树和B+树的区别

1.B+树数据只存在叶子节点,可以留出更多的空间存储索引,而B树每一个节点都存储了索引和数据,树更高。因此使用B+树,能够获得更矮的树,磁盘I/O次数减少。

2.B+树的叶子节点通过双向链表链接,因此范围查询的效率会更高。

分库分表

阿里开发公约:单表数据超过500W或者容量超过2G就应该分库分表。

聚簇索引(主键索引)和非聚簇索引(非主键索引)

主键索引的叶子节点聚集着主键索引和主键数据,而二级索引,也就是非主键索引,叶子节点存储着当前节点的数据和主键索引,先要查找整行数据,还需要通过回溯主键索引,找到其他数据。

RedoLog/UndoLog/BinLog

RedoLog:主要是用于针对InnoDD存储引擎的新数据操作崩溃恢复,作用于bufferpool,主要是恢复事物数据持久性

UndoLog:主要用于老数据回滚和事务隔离。

BinLog:主要用于整个MySQL的新数据操作崩溃恢复,作用于磁盘,记录所有日志。

image-20250716151049851