php - 存储餐厅签到计数等数据的最佳方式?

标签 php mysql database database-design relational-database

我有一个显示餐厅资料数据的页面,其中显示的数据之一是用户到餐厅签到的总次数

我有一个像:user_checkins 这样的 mysql 表,它存储用户到餐馆的签到,例如:

id | user_id | res_id | checkin_date        |
 1 |     102 | 5526   | 2016-04-21 03:20:21 |
 2 |     165 | 5574   | 2016-04-21 06:35:21 |
 3 |     102 | 4565   | 2016-04-24 02:15:30 |

和另一个表res_checkin_count:

id | res_id | total_checkin_count |
 1 |   5526 | 1055                |

一段时间后,user_checkins 中将创建许多行,因为人们经常 checkin

问题:我应该删除旧的行吗?就像创建一个定期(例如每天)删除到达餐厅的旧行并更新另一个仅存储每个餐厅的 total_checkin_count 的另一个 mysql 表中的餐厅 total_checkin_count 编号的 cronjob 吗?这会消耗大量内存吗?

我保留行并让它累积并使用SELECT COUNT(*) all 来获取每家餐厅total_checkin_count

编辑:user_checkins 表实际上存储了各个餐厅的所有用户签到,每次有人访问“restaurant_profile”网页时,SELECT COUNT(*) 查询将在res_id x 的 user_checkins 表,用于获取该餐厅的签到总数,这是多余的吗?

最佳答案

当你说很多行时,你需要评估很多行是否超出了 MySQL 的能力。一般来说,MySQL 应该能够轻松处理每个表 1 亿行的数量级。您预计行数很快就会超过 1 亿吗?如果没有,那就不要管你的数据,它会降低归档系统的复杂性。

另一方面,如果您预计表上的行数超过数亿行,那么运行日常作业来删除或归档数据有助于保持数据库良好运行。

关于php - 存储餐厅签到计数等数据的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37197532/

相关文章:

php - 有人可以详细解释 Magentos Indexing 功能吗?

javascript - ajax调用后如何刷新数据表

php - codeigniter 中的未定义索引错误

php - 为 Php 解析 API

database - 如何查看谁更改了表结构?

mysql - 数据库设计中的一对一主从关系

php - Symfony 防火墙在做什么需要这么长时间?

mysql - 是否可以从 JSON 文件生成 SQL 数据库?

mysql - 在不同服务器上同步 MySQL 库的最佳方法

mysql - 如何将Mysql中的查询转换为Sql中的查询