东莞网站优化公,百度怎样收录到网站,陕西的网站建设公司,wordpress插件清理在MySQL中#xff0c;尤其是InnoDB存储引擎中#xff0c;读操作主要分为两种#xff1a;当前读#xff08;Current Read#xff09;和快照读#xff08;Snapshot Read#xff09;
当前读 当前读每次读取的都是当前最新的数据。这种读操作在读取数据时不允许其他事务对这…在MySQL中尤其是InnoDB存储引擎中读操作主要分为两种当前读Current Read和快照读Snapshot Read
当前读 当前读每次读取的都是当前最新的数据。这种读操作在读取数据时不允许其他事务对这些数据进行写操作反之亦然写操作时也不允许读操作。通常用于修改数据或加锁读取的操作如UPDATE、INSERT、DELETE等。
select * from table where ... LOCK IN SHARE MODE;
select * from table where ... FOR UPDATE;
insert into tavble ...;
delete from table where ...;
update table ...;快照读 快照读每次读取的是某个时间点的快照数据。一条数据正在被另一个事务修改快照读也可以进行保证读写不冲突。常用于查询数据的操作如SELECT等。
select * from table where ...mysql只有REPEATABLE READ可重复读和READ COMMITTED读已提交隔离级别才会使用快照度
不同的隔离级别下快照读的行为也有所不同。
在REPEATABLE READ可重复读隔离级别下MySQL默认隔离级别一个事务内多次快照读同一条记录会得到第一次查询时的快照数据, 当然中间不能发生当前读, 否则会刷新快照。在READ COMMITTED读已提交隔离级别下一个事务内多次快照读同一条记录会得到最新提交的快照数据。