mysql - 在 MySQL 表中存储重复数据

标签 mysql optimization

我有一个表,其中包含所有已注册的成员,其中包含 uidusernamelast_action_time 等列。

我还有一个表格,用于跟踪过去 5 分钟内谁在线。它由一个 cronjob 填充,方法是从 members 中提取数据,last_action_time 不到 5 分钟前。

问题:我的online 表应该包含username 还是不包含?我问这个是因为我可以 JOIN 两个表来获取这些数据,但是我可以将 username 存储在 online 表中并且没有加入。我担心的是我会将重复的数据存储在两个表中,这似乎是错误的。

最佳答案

如果您没有遇到性能问题,请不要反规范化。有一句名言“规范化直到它受到伤害,非规范化直到它起作用”。在您的情况下,它适用于规范化模式(用户表已加入)。数据库旨在处理大量数据。

关于mysql - 在 MySQL 表中存储重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7222478/

相关文章:

php - Slim Framework - PDO 对象已创建但似乎不在范围内

javascript - 我应该如何处理 Javascript/AWS Lambda 中的数据库连接

MySQL:如果表存在,截断并插入 ELSE 创建

mysql - 通过重写来优化这个mysql查询?

python - 将一个大长方体切割成尺寸在一定范围内的随机小长方体

node.js - 如何优化我的 heroku web 应用程序

php - 点击为 MYSQL 数据库添加 +1 投票

MySQL:当我已经有时间戳字段时,我应该使用 "date"和 "time"字段吗?

mysql - 迁移后什么会导致mysql性能下降?

python - 使用统计包对数百个协变量进行最大似然估计的方法