MySQL多个进程编写

时间:2013-07-25 09:49:11

标签: mysql database

我正在尝试构建一个用于在某些测试中存储结果的数据库。问题是这些测试是在并行和单独的进程中运行的,并且在每个测试完成后,它会将结果提交给数据库。现在我知道MySQL旨在处理这种情况,而像InnoDB这样的引擎可以实现行级锁定。

  1. 如果进程将访问锁定的表或条目,是否会阻止进程并轮询直到表或条目解锁或缓存查询并且进程可以正常终止?
  2. 如果某个进程在发生故障时尝试连接到服务器,会发生什么情况,或者由我来处理它?<​​/ li>

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

数字2由您自己决定,当mysql_connect()或您用于连接数据库的任何内容将引发异常时,您将采取什么措施。第1个问题将在MySQL级别解决,具体取决于您的进程需要对锁定的表或行执行什么操作。通常,这会导致查询暂时延迟访问锁定区域中的数据,但如果其他进程长时间锁定表/行,则会返回一个时间外错误。也可以进行相互锁定,比如进程A锁定第1行,进程B锁定第2行,A希望来自第2行和B的数据需要来自第1行的数据。这被称为“死锁”,其中一个进程被选中作为死锁受害者,其查询返回失败。