B树和B+树的区别
1.B+树数据只存在叶子节点,可以留出更多的空间存储索引,而B树每一个节点都存储了索引和数据,树更高。因此使用B+树,能够获得更矮的树,磁盘I/O次数减少。
2.B+树的叶子节点通过双向链表链接,因此范围查询的效率会更高。
分库分表
阿里开发公约:单表数据超过500W或者容量超过2G就应该分库分表。
聚簇索引(主键索引)和非聚簇索引(非主键索引)
主键索引的叶子节点聚集着主键索引和主键数据,而二级索引,也就是非主键索引,叶子节点存储着当前节点的数据和主键索引,先要查找整行数据,还需要通过回溯主键索引,找到其他数据。
RedoLog/UndoLog/BinLog
RedoLog:主要是用于针对InnoDD存储引擎的新数据操作崩溃恢复,作用于bufferpool,主要是恢复事物数据持久性
UndoLog:主要用于老数据回滚和事务隔离。
BinLog:主要用于整个MySQL的新数据操作崩溃恢复,作用于磁盘,记录所有日志。