一、架构设计

发挥单机优势,单机扩容

1.存储引擎原理

1.存储形式

关键字:页头、虚记录、记录堆、自由空间链表、未分配空间、slot区、页尾

数据库分配存储空间以页为单位,请求数据时加载单位也是页(16k)
图片.png

  • 页头:56字节,记录页面控制信息(页与页双向链表链接)
  • 最大虚记录比页内最大主键还大,最小虚记录比页内最小主键还小。大概就是两个整数,保存的是主键的范围,可以快速筛选掉超过范围的查找
  • 记录堆:行记录存储,分为有效记录和已删除记录、自由空间链表(已删除记录组成的链表)
  • 页目录: slot信息。页目录里维护多个 slot ,一个 slot 包含多个行记录。每个 slot 占 2 个字节,记录这个 slot 里的行记录相对页初始位置的偏移量。由于索引只能定位到数据页,而定位到数据页内的行记录还需要在内存中进行二分查找,而这个二分查找就需要借助 slot 信息,先找到对应的 slot ,然后在 slot 内部通过数据行中记录头里的下一个记录地址进行遍历。每一个 slot 可以包含 4 到 8 个数据行。如果没有 slot 辅助,链表本身是无法进行二分查找的

图片.png

  • 页尾:页面最后部分,占8个字节,主要存储页面的效验信息

2.页内记录维护

顺序保证:用逻辑有序(单向链表)。
图片.png
插入策略:先自由空间链表,后未分配空间。删除操作频繁的话会产生磁盘碎片。
页内查询:选用二分查找(根据slot实现)

2.锁实现原理

3.事物实现原理

4.分库分表实例

二、海量数据高并发

1.tdsql介绍,分布式存储

三、