页是 MySQL 中数据存储的基本单元,整颗 B+ 树就是一个又一个相互使用指针连接在一起的页组成的。
图 8-11 展示出了页之间的指针关系:
单向
指针双向
指针,无论是上面的索引页层还是底层的数据页层单向
指针InnoDB 的多级二叉树把数据进行了非常扁平的多级索引,三层索引就可以存储 2100 万行数据,非常适合在行数特别多的时候进行单个数据的读取和写入。在存储大量数据行时,InnoDB 拥有如下几个优势:
缓存 LRU(Least Recently Used)算法是一种常用的缓存替换算法,用于确定哪些数据应该从缓存中淘汰。其原理是基于数据的访问时间,最近被使用过的数据将具有较高的访问概率,而较长时间未被使用的数据则可能不再需要。
InnoDB 在缓存 LRU 算法上进行了一些优化:
在单行数据为 0.9KB 的情况下,当数据量达到 2100 万行时,InnoDB 的 B+ 树会从三层变为四层。然而,这个转变并不是分库分表的依据。在内存容量足够的情况下,跨越临界点前后的 InnoDB 几乎没有性能差别。
相反,以下策略对于数据库优化来说更有价值:
recreate
+ analyze
操作可以显著提升性能。📙 高并发的哲学原理 《Philosophical Principles of High Concurrency》
Copyright © 2023 吕文翰