考虑以下情况:您想要更新系统中每个个人资料的页面浏览量。此操作非常频繁,因为几乎所有对您网站的访问都会导致页面浏览量增加。
基本方法是更新用户设置的page_views=page_views+1。但这完全不是最优的,因为我们并不真正需要即时更新(晚一小时也可以)。 MySQL中是否有其他方法可以推迟一系列更新,并在以后进行累积更新?
我自己尝试了另一种方法:为每个配置文件存储一个计数器(增量数)。但这也导致处理数千个小文件,我认为磁盘 IO 成本(即使应用文件的深层树结构)可能会超过数据库。
您对这个问题有什么建议(MySQL 除外)?
最佳答案
为了提高性能,您可以将页面 View 数据存储在 MEMORY 中表 - 这是 super 快但临时的,该表仅在服务器运行时持续存在 - 重新启动时它将为空...
然后您可以创建一个 EVENT更新将定期保存数据的表。这将有助于稍微提高性能,但存在这样的风险:如果服务器出现故障,则只会丢失自上次运行事件以来的访问次数。
关于mysql - 在 MySQL 中设置最终一致性(延迟提交),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856888/