mysql
文章平均质量分 65
计算机中的小垃圾
这个作者很懒,什么都没留下…
展开
-
mysql的一些事(一)
1,count(*)的一些事 相信我们都知道,在执行count(*)语句的情况下,Myisam执行速度通是O(1)级别的,是比innodb是要执行要快的,这是因为Myisam中对于行的个数是专门有个字段记录的,而innodb是一行行的来统计才得出的。 但是为什么,innodb也不弄一个字段来存储行数。因为MVCC机制的作用,MVCC是多版本并发控制,innodb是支持事务的,在多个事务执行期间,由于MVCC机制,他会导致每个事务所读取的行数是不相同的(如下图)。这就是为什么不弄一个专门的字段来存储。原创 2022-03-28 15:55:48 · 733 阅读 · 0 评论 -
事务持久性的实现原理
我们知道事务ACID,原子性,持久性,隔离性,一致性 原子性是通过undo日志来实现的,隔离性是通过各种锁来实现的,持久性是通过redo日志实现的,今天我们就来盘一盘。 **为什么需要redo:**数据库操作数据不是直接在磁盘中操作的,而是在内存有个buffer pool,当需要操作某个数据的时候,先把数据所处的那一页刷入内存,然后在内存中修改完成后再刷入道磁盘中,折磨一说好像没毛病,但是有这样一个问题,当我们事务提交了,内存中数据修改了,但是这时服务器坏了,电脑关机了,内存中的数据没到磁盘中,这该怎么办。原创 2022-02-15 22:41:37 · 693 阅读 · 0 评论