2011-03-27 68 views
2

我无法购买更多硬件。我有2gig ram for mysql。Mysql缩放小应用程序

现在我的小部件正在57个网站上显示,平均有3000个视图。我的窗口小部件需要每个视图200个插入内容的最佳用户优化。这意味着每秒平均有将近400个刀片。

现在你有什么建议我加快插入。插入的数据被分成三个表格,其中两个分别获得80个和最后一个获得40个插入。

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

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

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

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

谢谢你们伙计

回答

7

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

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

MySQL调谐器也可以帮助确定你真正需要什么。它将显示统计信息,如插入百分比和选择百分比,为各种缓冲区使用多少内存,查询缓存如何执行等等。它还提供了一些提示,以便改进这些内容,尽管在实际操作之前应该先采取一定的盐和研究这些提示。

+1

从哪里可以获得mysql调谐器? – Vish 2011-03-28 11:42:15

+1

如果您在Linux上使用MySQL,那么您的发行版很有可能在其存储库中存在。如果他们不想或者你只是想要一个更新的版本,可以从http://mysqltuner.pl – jmichalicek 2011-03-28 12:26:14

+1

下载它如何执行pl脚本。 – Vish 2011-03-28 12:46:39