MySQL - 是否可以运行多个同步插入?

时间:2015-10-04 06:33:22

标签: mysql insert parallel-processing auto-increment

我用Google搜索并搜索了SO,但未能找到答案;也许你可以指点一些参考/文档?

这更多是关于理解MySQL在插入时处理表内容的方式。 我有一个表(Myisam),它有一个自动增量主键'autoid'。我使用一个简单的脚本来插入1000多个记录。我要做的是运行此脚本的多个实例(您可以将其映像为类似于同时从不同的计算机访问脚本)。

MySql是否能够相应地分发自动增量主键而无需我的任何进一步操作,或者我是否必须为每台机器执行某种表锁定?也许我必须在MyIsam上选择InnoDb?

我想要实现的是:无论有多少台机器同时触发脚本,所有插入都应该完成而不会跳过任何自动增量ID或抛出错误,例如“重复值为......”。

非常感谢

1 个答案:

答案 0 :(得分:3)

使用数据库的全部意义在于可以以事务方式处理此类情况。所以,是的,这个场景适用于每个常用的DBMS系统,包括MySQL。

您认为平均论坛如何与50个用户同时发布主题回复,所有这些都来自分叉并行Apache进程,因此可能只相隔几微秒,或来自多个负载均衡的Web服务器?

在内部,它只是在访问和增加共享资源(在这种情况下是表的自动增量值)时使用与任何其他进程一样的互斥/信号量,以减轻固有的竞争条件。