Mysql Scaling for small app

时间:2011-03-27 21:53:57

标签: php mysql database scaling

我买不到更多的硬件。我有2gig ram for mysql。

现在我的小部件正在57个网站上显示,平均有3000个浏览量。我的窗口小部件每个视图需要200个插入,以便对内容进行最佳用户优化。这意味着平均每秒有近400次插入。

现在你建议我做些什么来加快插入速度。插入的数据分为三个表,其中两个表各得80个,最后一个表插入40个。

我正在使用MYISAM,我不喜欢INNODB,因为我从来没有使用它,我现在也不能使用它,但一个很好的理由可能会说服我。问题是在高峰时段每秒大约有1200个插入,这是一个真正的瓶颈。

主要是查询是更新以增加展示次数。因此,更新展示次数=展示次数+ 1,其中widget = widget_id

任何加速数据库查询的建议都会很棒。

也可以有插入缓存,例如批量运行插入。这样的事情。及时插入,批量插入等。顺便说一句,如果可以详细解释,我真的很感激,因为我是一个完整的菜鸟。

谢谢大家

1 个答案:

答案 0 :(得分:7)

考虑InnoDB符合您的最佳利益。 InnoDB是MySQL与其他适当的关系数据库最相似的地方,提供最高的可靠性和功能。在您的情况下,MyISAM最大的直接缺点是每次插入或更新行时都会锁定整个表。虽然MyISAM对于小规模项目来说非常快,但如果你有很多插件,那么最终可能会成为瓶颈,如果还没有。稍后您可能还需要InnoDB提供的正确外键,事务等。

您还应该阅读MySQL文档和MySQL Performance Blog上的文章,了解有关缓冲区和其他配置选项的MySQL优化配置的提示。

MySQL Tuner也可以帮助您确定您真正需要的内容。它将显示统计信息,例如插入百分比和百分比选择,各种缓冲区使用的内存量,查询缓存的执行方式等等。它还提供了关于如何调整以改进这些内容的提示,尽管这些提示应该在实际执行之前进行研究并进行研究。