MySQL
文章平均质量分 82
MySQL
码鹿的笔记
落魄码农的学习笔记
展开
-
Mysql 事务的特性 —— ACID
当Mysql故障时,可以读取redo log对数据进行恢复(并非可以全部恢复)。Mysql持久化并不会先刷到磁盘,而是先写redo log再持久化到磁盘。next key lock - 临键锁 = record + gap。WAL日志先行:undo log/redo log。undo log则是事务原子性和隔离性实现的基础。而MVCC的实现其中就依赖了undo log。是由原子性、持久性、隔离性共同保证的结果。两个隔离级别由MVCC实现。数据一致性 : 保证数据完整。LBCC:基于锁的并发控制。原创 2023-09-28 16:46:10 · 115 阅读 · 0 评论 -
【MYSQL】Join 连接 : Nested-Loop Join 和 Hash Join
比如A表是记录用户数据,B表是记录金钱数据,就可以使用让它们的数据一起展示。原创 2023-10-04 23:31:22 · 386 阅读 · 0 评论 -
MYSQL如何减少磁盘 IO ?——BufferPool
MYSQL Innodb底层采用了数据结构。而B+树有一个优点,可以,从而。除此之外,MYSQL还采用了Buffer Pool去减少磁盘IO。原创 2023-09-26 23:38:27 · 250 阅读 · 0 评论 -
【MYSQL】分页
因为它不需要进行表的关联,而是一个简单的比较,在不知道上一页最大id的情况下,是比较推荐的用法。实际操作中不一定能拿到这个id,比如跨页查询,当前在第3页,需要查询第5页的数据,就不行了。子查询只扫描了ID字段,而非全表,所以性能要强于方式1,并且能够解决跨页查询问题。优化方案二的跨页查询。但如果当前在第2页,要查第1000页,性能仍然较差。,是比较常用的方式。原创 2023-09-26 00:34:13 · 24 阅读 · 0 评论 -
MYSQL 故障恢复 —— 重做日志 Redo Log
如果 Buffer Pool 的脏页刷新到了磁盘中,那么 redo log 对应的记录也就没用了,这时候需要擦除这些旧记录,以腾出空间记录新的更新操作。同一个事务产生的 redo log 会被标记为一个 redo log group,持续写入到 redo log block 中。redo log 是以循环写的方式工作的,从头开始写,写到末尾就又回到开头,相当于一个环形。MySQL的写操作并不是立刻写到磁盘上,而是先写日志,然后在合适的时机再写到磁盘上。redo log 是按块,一块块地写入到磁盘中去的。原创 2023-09-27 21:48:46 · 287 阅读 · 0 评论