Notes
latest
操作系统
进程与线程
僵尸进程
进程调度算法
死锁
IO模型
文件描述符
epoll
共享内存
虚拟内存
JAVA IO
JAVA线程模型
常用命令
查看日志
网络
网络协议
HTTP
TCP
输入URL
网络编程
负载均衡
Nginx
ICMP
数据库
Log
ACID
MVCC
事务隔离级别
MySQL锁
两阶段提交
语句执行流程
三阶段提交
innoDB储存
索引
order by
主从复制
MySQL优化
三大范式
删除表命令
Mybatis
红黑树
JAVA
JAVA基础
集合
静态与动态绑定
动态代理
反射
拷贝
四种引用
ArrayList
HashMap
ConcurrentHashMap
JVM
类加载机制
运行时数据区
堆
方法区
对象实例化
String 的细节
垃圾回收器概述
垃圾回收器
G1垃圾回收器
GC
GC日志分析
引用类型、内存泄露、安全点
双亲委派机制
Tomcat 中的隔离与双亲委派机制
常见溢出
问题排查
设计模式
概述
设计模式应用
单例模式
建造者模式
原型模式
多线程
JMM
volatile
双重检测锁
ThreadLocal
CAS
AQS
ConditionObject
synchronized
ObjectMonitor
ReentrantLock
CountDownLatch
CyclicBarrier
synchronized 与 reentrantLock
创建线程方式
Thread
Runnable
Callable
Future
FutureTask
Thread类
线程池
Spring
Bean
IoC
AOP
tiny-spring
注解
事务
SpringMVC
SpringBoot
Redis
redis线程模型
持久化
reids
redis高可用
Redis 事务
分布式锁
跳跃表
布隆过滤器
缓存一致性
订阅与发布
分布式
CAP
BASE
RAFT
Paxos
两阶段提交
三阶段提交
TCC
分布式锁
RPC
消息队列
消息队列问题
分布式ID
项目相关
项目介绍
cookie和session
分布式锁:redisson
OAuth2
Feign
线程池
线程池异步查询
CompletableFuture
分布式事务
幂等
令牌验证
RabbitMQ
消息队列的使用
消息可靠
秒杀
高并发
瓶颈
Docker
算法
大数据题
背包
算法
Arrays.sort
Notes
Docs
»
innoDB储存
Edit on GitHub
innoDB储存
¶
从大到小的结构为:表空间、段、区、页、行。
表空间
¶
表空间作为存储结构的最高层,所有数据都存放在表空间中,默认情况下用一个共享表空间 。
段
¶
表空间由各个段构成,InnoDB存储引擎由索引组织的,而索引中的叶子节点用来记录数据,存储在数据段,而非叶子节点用来构建索引,存储在索引段。
区
¶
区是由连续的页组成,任何情况下一个区都是 1MB
页
¶
一个区中可以有多个页,每个页默认为 16KB ,所以默认情况下一个区中可以包含64个连续的页
页中存储的是具体的行记录。一行记录最终以二进制的方式存储在文件里
数据页内容
¶
slot
¶
一个 slot 包含多个行记录。每个 slot 占 2 个字节,
记录这个 slot 里的行记录相对页初始位置的偏移量
。
索引只能定位到数据页,而定位到数据页内的行记录还需要在内存中进行
二分查找
,而这个二分查找就需要借助 slot 信息,先找到对应的 slot ,然后在 slot 内部通过数据行中记录头里的下一个记录地址进行遍历。
链表本身是无法进行二分查找
。