【发布时间】:2014-07-19 07:02:03
【问题描述】:
我需要问一个简单的问题,我的 MYSQL 表正在使用 MYISAM 存储引擎,并查看了一些以前的问题,他们说在这个引擎下的查询是自动提交的(不允许事务只自动提交)。
现在,这是否意味着,如果我执行以下查询:
UPDATE `ExampleTable` SET `ExampleField` += '50' WHERE ...;
UPDATE `ExampleTable2` SET `ExampleField2` -= '50' WHERE ...;
要么成功(并自动提交/更新两者),要么失败且都不更新?
或者我对查询的定义不正确,MYISAM 一次只会自动提交一个命令? -所以我不能在MYISAM下可靠地进行上述查询?
(额外问题)如果是这样,我听说过支持事务的 INNODB 引擎。我可以用那个代替吗?为了换取可靠的查询,我会损失多少速度?
感谢您的帮助。
【问题讨论】:
-
基本上我要问的是:MYISAM 将自动提交的一个查询上方的代码是,还是该 SQL 被视为两个查询? (这意味着我需要一个像 INNODB 这样的事务引擎)