这是我的问题。 我们有一个让用户玩的网络应用程序,每次“播放”(一次点击)都会更新数据库中的计数。实际的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调优之外还有一些问题。