针对性能问题,在数据库中更新播放计数的最佳方法

时间:2011-06-01 06:20:48

标签: mysql performance web-applications

这是我的问题。 我们有一个让用户玩的网络应用程序,每次“播放”(一次点击)都会更新数据库中的计数。实际的sql可能如下所示:

UPDATE `play_counts` SET `counts` = counts + 1, `modified` = '2011-06-01 00:00:00' WHERE `campaign_id` = 3;
Query_time: 2.564047  Lock_time: 0.000030 Rows_sent: 0  Rows_examined: 1

在最近的mysql慢查询日志中输出它之前已经很好了。有什么建议可以改善表现吗?

我正在考虑“缓存”不同媒体(远离数据库)中的计数,并使用批处理一次更新数据库。但我很高兴听到更多。

更新

play_counts表只是保留计数,其PK是campaign_id。

目前我们正在使用InnoDB引擎。改为MyISAM会更好吗?

UPDATE2 通常sql只用了0.01秒,但只有一些时间花了2秒。我认为除了索引或sql调优之外还有一些问题。

0 个答案:

没有答案