2012-08-01 93 views
0

我正在开发将从多个comuters运行的应用程序。我想锁定mysql表,因此不会出现进程并发问题,例如一个进程正在写入,另一个进程正在同时读取。或者甚至更糟糕的是同时编写(更新)不同的值。 MySQL提供了锁,但文档说我们应该避免在InnoDB中使用锁。 Read here。请提供一些建议,在这种情况下应该怎么做。感谢大家。mysql innodb锁

回答

0

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

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

隔离级别越高,并发性越低,如果锁定表,仍有更多的并发性。