MVCC(数据库多版本并发控制)

前面的文章说到数据库的事务问题,在innodb引擎四个隔离级别(读未提交RU;读已提交RC;可重复读RR;可串行化Serializable)中,而MVCC只适用于RC和RR。

一、什么是MVCC

Multi-Version Concurrency Control,就是在事务执行过程中加入“版本”这个概念、MVCC的实现,通过保存数据在某个时间点的快照来实现的。

1、MVCC优缺点

MVCC在大多数情况下代替了行锁,实现了对读的非阻塞读不加锁读写不冲突。缺点是每行记录都需要_额外的存储空间_,需要做更多的行维护和检查工作。


漫谈数据库事务(一)事务、事务隔离级别

该节内容为漫谈,内容相对比较多。

首先说明一下:事务不只是关系型数据库独有,非关系型数据库也有事务。只要在高并发或在短时间内操作做多条(批量,状态改变)数据的情况下,大都,注意是大都,而不是全部。

说事务,但解决问题的最好的办法是避免使用事务。在日常开发中要是迫不得己那就用下事务吧。目前大型国企在事务处理上大都选择orical ,一般私营企业还是选择MySQL,使用MySQL来处理事务,在MySQL中用的最多的存储引擎有:innodb,bdb,myisam ,memory 等。其中innodb和bdb支持事务而myisam等不支持事务。这也是 innodb和myisam的重要区别之一。


MySQL语句优化补充(二)

除了增加索引外,还有很多注意的问题。

1、不要在语句中出现计算

2、查询条件数据类型一致

为了测试把其中的一个订单id 改为 201903121704170005,看下图不同的查询:


MySQL语句优化补充(一)

前面已经写了一些关于优化sql语句的方法。为了更形象的在项目中使用,以现有的数据再次详细说明一些,希望对sql优化有更进一步的学习。

一、从发现问题到解决问题

以本地数据 my_order表为例,先生成119w多条记录。

根据id查询一条数据,用时0.00s