Mysql Scaling for small app

Vis*_*ish 2 php mysql database scaling

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

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

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

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

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

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

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

多谢你们

jmi*_*cek 7

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

您还应该阅读MySQL文档和MySQL性能博客上的文章,了解有关缓冲区和其他配置选项的MySQL优化配置的提示.

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

  • mysqltuner.pl是一个perl脚本,因此您需要在要运行它的计算机上安装Perl 5.然后你可以使用"perl mysqltuner.pl"或者甚至只是"mysqltuner.pl"运行它,就像任何可执行的二进制文件或脚本一样,只要shebang行指向你的Perl解释器. (2认同)