mysql
三层B+树
2层稀疏索引。16k一页,主键索引+其他索引
buffer pool 不再需要系统文件缓存 直接io读写磁盘
自适应哈希索引,热数据字典存储
undo log。更新buffer pool的时候记录变化前后数据逻辑变化(事务),可以支持回滚操作
redolog 数据更新操作后数据都写文件中,顺序写,记录变化, edo log日志的大小是固定的,即记录满了以后就从头循环写。可以临时断电故障的恢复
server层
网络连接层、分析器、优化器、
存储引擎层
innodb。 binlog
所有变更操作写binlog
事务:
四大特性:原子性、隔离性、一致性、持久性
四种隔离级别可以解决什么问题:
未提交读,这种情况可能引发脏读,即其他事务未提交就读取到了数据,最后结果可能不一致
提交读:可以解决脏读问题,但是仍然有不可重复读的问题,即事务内部多次查询不一致,因为外部事务提交前后的变化
可重复读:第一次查询后跟后几次查询数据一致。可以解决不可重复读的问题,但是会有幻读:查询的数量不一致,innodb默认此隔离界别
串行:不同事务串行读区,不会有问题,
锁:
读锁,写锁(共享锁,拍他锁)有行级别和列级别
死锁:
多个锁涉及多个行或者表,互相依赖
1锁
update a
update b
2锁
update b
update a
超时时间,应用程序控制逻辑处理
浙公网安备 33010602011771号