确保`INSERT'对于特定的MyISAM表是并发的?

时间:2010-07-09 16:58:18

标签: mysql database myisam

我有一个基本上包含日志的MyISAM表。一组计算机在此表上以每秒50个的速率单个记录INSERT,但同一个表也由Web应用程序SELECT编辑,并编入索引以适应此。但是,没有UPDATEDELETE s。

所以从我收集的内容来看,我应该使用并发插入。 (对吗?)MyISAM通常会在没有任何额外工作的情况下为我做这件事。 (这是正确的吗?)

但我找不到的是一种保证同时处理给定INSERT的方法。我知道我可以将全局变量concurrent_insert设置为2,但我不想全局设置它。

所以我的问题是:

  • 我是否有某些方法可以保证并发插入?

  • 如果没有,是否有一个命令我可以用来查看表是否满足并发插入要求? (我相信只要知道一张桌子是否有洞就足够了?)因为我也愿意只能监视桌子。

  • 我也很好奇,是否有其他数据库系统可以更好地处理这种负载?如果碰巧是这样的话,我对NoSQL解决方案完全没问题。只要我能从Ruby和C谈论它。

1 个答案:

答案 0 :(得分:1)

为什么不想全局设置concurrent_insert = 2?这会给你你想要的东西。

您可能要为此类型的MyISAM表考虑的另一个选项是INSERT DELAYED: http://dev.mysql.com/doc/refman/5.1/en/insert-delayed.html