我有一个显示餐厅资料数据的页面,其中显示的数据之一是用户到餐厅签到的总次数
我有一个像: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/