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

 

超时时间,应用程序控制逻辑处理

 

posted on 2025-08-02 23:07  paulgeo  阅读(5)  评论(0)    收藏  举报