mysql - 如何按时间间隔缓存查询并在时间到期时将它们一起发送?

标签 mysql sql database caching

我确信有很多关于此类主题的教程,但我找不到我想要的内容,因为我不知道它的行话。所以我问 StackOverflow。

这里是例子:
人们可以喜欢或不喜欢 Youtube 上的视频,数据库应该更新喜欢或不喜欢的计数。然而,每次用户点击喜欢/不喜欢按钮时更新数据库是不切实际的,尤其是对于像 Youtube 这样的网站。

我们如何在一个时间间隔缓存查询/计数数字,并且当时间到期时我们一次发送所有查询/更新数据库?或者针对这种情况的任何类似技术?

最佳答案

因此,您观察到的是事情发生与能够查看所发生事情的结果之间的时间延迟。

而且您走在了只定期更新的正确道路上。

但是就在哪里进行定期更新而言,您走错了路。

事情是你想要每次尽快更新“数据库”(即负责写入的数据库 - 选择你缺少的CAP的角落三角形)以快速捕获所有内容,但对于您的访问者/查看者,您为他们提供了一个稍微落后(几秒到一天,视情况而定)的写入数据库 View 。

您不想将其存储在浏览器中,如果请求失败、互联网中断等,您可能会丢失用户所做的事情。

稍微偏离主题 - 在不知道通过缓存、缓冲等将节省多少数据的情况下,您通常不会尝试“过早优化”。这样的优化会增加复杂性 - 您将保持理智,时间更长,如果你尽可能长时间地保持简单。保持设计简单并在了解瓶颈后优化瓶颈。

稍微偏离主题 - 我建议阅读分布式计算,特别是因为它与数据库有关,然后是一些设计。您会发现这些高度集中的抽象问题都有各种优缺点的“解决方案”。

关于mysql - 如何按时间间隔缓存查询并在时间到期时将它们一起发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23899650/

相关文章:

mysql - 如何根据sql中产品的混合属性列集获取值

sql - 如何在 DERBY DB 中描述和显示表?

database - 分解为第三范式 (3NF)

java - Hibernate:使用相同连接列的多个关系

MySQL 使用 REGEXP 导致查询时间过长

mysql - 在数据库中存储值时出现问题

mysql - 有效地更新用户配置文件

sql - 将 Rails SQL 输出转换为有效的 psql 语句

php - 如何使用关系在laravel数据库中插入嵌套的二维数组

PHP - 将动态字段保存到 MySQL 数据库