mysql - 在 MySQL 中设置最终一致性(延迟提交)

标签 mysql database

考虑以下情况:您想要更新系统中每个个人资料的页面浏览量。此操作非常频繁,因为几乎所有对您网站的访问都会导致页面浏览量增加。

基本方法是更新用户设置的page_views=page_views+1。但这完全不是最优的,因为我们并不真正需要即时更新(晚一小时也可以)。 MySQL中是否有其他方法可以推迟一系列更新,并在以后进行累积更新?

我自己尝试了另一种方法:为每个配置文件存储一个计数器(增量数)。但这也导致处理数千个小文件,我认为磁盘 IO 成本(即使应用文件的深层树结构)可能会超过数据库。

您对这个问题有什么建议(MySQL 除外)?

最佳答案

为了提高性能,您可以将页面 View 数据存储在 MEMORY 中表 - 这是 super 快但临时的,该表仅在服务器运行时持续存在 - 重新启动时它将为空...

然后您可以创建一个 EVENT更新将定期保存数据的表。这将有助于稍微提高性能,但存在这样的风险:如果服务器出现故障,则只会丢失自上次运行事件以来的访问次数。

关于mysql - 在 MySQL 中设置最终一致性(延迟提交),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856888/

相关文章:

sql - 排序结果与 mysql 中的内连接和左连接不同

mysql - 在 MySQL 中一次更新多行

sql - CodeIgniter - 继续出现 SQL 错误?

sql - 选择正确的数据库 : MySQL vs. 其他一切

php - 根据变量等于 1 还是 0 更改查询顺序

MySQL - 创建用户定义函数 (UDF) 时出现问题

php - 上传post图片url到mysql数据库,多个url排成一行

python - SqlAlchemy:如何在 mysql 中制作 LONGBLOB 列?

mysql - 使用 mysqldump 将大型 Innodb 数据库缓慢导入 Amazon RDS

javascript - 在 MongoDb 中使用 mapReduce 获取文档(行)计数