1

我有一个基本上包含日志的 MyISAM 表。INSERT一个机器集群以每秒 50 次的速度在该表上执行单条记录,但同一个表也SELECT由 Web 应用程序编辑,并为其编制索引以适应这种情况。但是,没有UPDATEs 或DELETEs。

所以从我收集到的信息来看,我应该使用并发插入。(对吗?)MyISAM 通常会为我完成这项工作,而无需任何额外的工作。(这个对吗?)

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

所以我的问题是:

  • 有什么方法可以保证并发插入吗?

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

  • 而且我也很好奇,有没有其他数据库系统可以更好地处理这种负载?如果发生这种情况,我完全可以接受 NoSQL 解决方案。只要我可以从 Ruby 和 C 中与它交谈。

4

1 回答 1

1

为什么不想全局设置 concurrent_insert=2 呢?那会给你你想要的。

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

于 2010-07-09T17:04:08.667 回答