0

我正在开发将由多个通勤者运行的应用程序。我想锁定mysql表,这样就不会有进程并发问题,比如一个进程在写,另一个进程同时在读。或者更糟糕的是,这两个过程同时写入(更新)不同的值。MySQL 提供了锁,但文档说我们应该避免在 InnoDB 中使用锁。在这里阅读。请提供一些建议,在这种情况下该怎么做。感谢大家。

4

1 回答 1

0

InnoDB 是一个完全支持 ACID 的事务存储引擎。InnoDB 的属性之一是它处理并发更新。具体如何取决于隔离级别,但通常 InnoDB 不允许两个事务通过锁定行来修改同一行。它不会锁定整个表,因此其他记录可以被其他事务修改。

如果您将隔离级别设置serializable为应用程序将工作,因为根本没有并发,但仍将允许一些并发。

隔离级别越高,您拥有的并发性就越少,如果您锁定表,您仍然拥有更多。

于 2013-07-07T07:51:26.317 回答