【发布时间】:2014-01-16 14:59:02
【问题描述】:
在我的 PHP 站点上,我每 10 秒向服务器发送一次 AJAX 请求,然后执行以下操作:
update users set points = points + 1 where id = 5
问题是有很多 MySQL 更新,它正在杀死我的服务器。
我想将积分临时存储在某处,当为用户累积 100 分时,我将更新用户表。所以 1 个插入而不是 100 个插入。
我应该如何临时存储数据?
要求: - 大量更新 - 存储至少 500MB 数据(如果存储在内存中,我有足够的内存) - (可选)如果可能的话,数据应该在服务器重启后存在
memcached 适合这个吗? (大量更新)
有没有类似 memcached 的东西,但可以选择将数据写入磁盘并在我重新启动服务器时恢复它?
APCu 或 MongoDB 或 NoSQL 数据库会更好吗?
【问题讨论】:
-
你有
users(id)的索引吗? -
是的,我有索引。它是一个 InnoDB 表。
标签: php mysql caching nosql memcached