duc*_*cin 1 mysql transactions snapshot
我有一个包含多个 InnoDB 表的数据库,我想从中读取数据,然后将数据转储为 XML 格式。此类 XML 将表示一个对象及其所有相关对象。
我不希望在读取过程中执行任何 INSERT(SELECT、SELECT、错误的 INSERT、SELECT...),因为这会导致数据不一致。我应该使用哪种类型的交易?START TRANSACTION我无法清楚地看出和之间的区别START TRANSACTION WITH CONSISTENT SNAPSHOT。
小智 7
这似乎是 INNODB 事务快照的一个极好的案例。你是对的,WITH CONSISTENT SNAPSHOT 之间的区别并不重要——它只控制快照是在启动事务时获取还是在第一次读取时获取。
重要的是您必须在 REPEATABLE_READ 隔离级别下执行。这是默认级别。
其他程序可以插入或更新任意数量的记录,您仍然可以从快照中获取版本。
请参阅http://dev.mysql.com/doc/refman/5.0/en/innodb-concient-read.html