mysql
文章平均质量分 56
Deamon Tree
这个作者很懒,什么都没留下…
展开
-
mysql 双路排序和单路排序
Mysql中单路排序和双路排序详解_自由的辣条的博客-CSDN博客_单路排序和双路排序文件排序(FileSort)分为两种:双路排序(又叫回表排序模式):先根据相应的条件取出相应的排序字段和可以直接定位行 数据的行 ID,然后在 sort buffer 中进行排序,排序完后需要再次取回其它需要的字段;单路排序:是一次性取出满足条件行的所有字段,然后在sort buffer中进行排序;举个例子,下面有一段sql:select * from user where name = "自由的辣条" .原创 2021-12-16 11:55:04 · 942 阅读 · 0 评论 -
mysql的change buffer
change buffer 的作用当需要更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在内存中的话,在不影响数据一致性的前提下,InooDB 会将这些更新操作缓存在 change buffer 中,这样就不需要从磁盘中读入这个数据页了。在下次查询需要访问这个数据页的时候,将数据页读入内存,然后执行 change buffer 中与这个页有关的操作。通过这种方式就能保证这个数据逻辑的正确性。需要说明的是,虽然名字叫作 change buffer,实际上它是可以持久化的数据。也就原创 2021-08-31 17:28:37 · 2757 阅读 · 0 评论 -
mysql的redo与undo
1.1.redo log在InnoDB存储引擎中,事务日志通过重做日志文件(redo log)和日志缓冲(InnoDB log buffer)实现。当一个事务开始时,会记录事务的一个LSN(Log Sequence Number);当事务执行时,会往InnoDB的日志缓冲中插入事务日志;当事务提交时,必须先将日志缓冲写入磁盘,换言之,就是先写日志在写数据,这种方式称作预写日志WAL(write ahead logging)。1.2.undo log重做日志记录了事务的行为,可以方便的通过其进行“原创 2021-08-31 15:23:15 · 2149 阅读 · 0 评论 -
InnoDB行记录格式及BLOB/TEXT字段优化
原创 2021-08-31 11:42:14 · 120 阅读 · 0 评论 -
mysql锁类型&加锁区间
前言InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题。本文主要讲加锁类型及加锁区间并发处理下的问题更新丢失事务T1读取了数据,并执行了一些操作,然后更新数据。事务T2也做处理包含相同行的事,则T1和T2更新数据时可能会覆盖对方的更新,从而引起错误。更新丢失可以通过加“乐观锁”来解决这个问题。脏读脏数据是指事务对缓冲池中的行记录record进行了修改,但是还没提交!如果这时读取缓冲池中未提交的行数据就叫脏读.原创 2020-09-16 15:29:45 · 717 阅读 · 0 评论