mysql一致读:事务一致快照

时间:2013-02-14 10:34:10

标签: mysql transactions snapshot

我有一个数据库,其中包含我要读取的几个InnoDB表,然后将数据转储为XML格式。这样的XML将代表一个包含所有相关对象的对象。

我不希望在我的读取过程(SELECT,SELECT,错误的INSERT,SELECT,...)中执行任何INSERT,因为这会导致数据不一致。我应该使用哪种类型的交易?我无法清楚地看到START TRANSACTIONSTART TRANSACTION WITH CONSISTENT SNAPSHOT之间的区别。

1 个答案:

答案 0 :(得分:2)

对于INNODB的交易快照来说,这似乎是一个很好的例子。你是对的,WITH CONSISTENT SNAPSHOT之间的区别不太重要 - 它只控制快照是在启动事务处获取还是在第一次读取时获取。

重要的是您必须在REPEATABLE_READ隔离级别执行。这是默认级别。

其他程序可以插入或更新任意数量的记录,您仍然可以从快照中获取该版本。

请参阅http://dev.mysql.com/doc/refman/5.0/en/innodb-consistent-read.html