MySQL使用JOIN或直接存储

时间:2015-04-24 22:35:58

标签: php mysql performance join database-schema

我有表usersposts。表格users包含列user_idusername,表格posts包含post_id列和user_id

当我收到帖子时,我也想获取用户名,因此最好在表usersposts之间使用JOIN来获取用户名,或者在表{中存储用户名{1}}?

假设在postsposts表中有超过几百万行,JOIN如何影响性能?

2 个答案:

答案 0 :(得分:1)

这就是为什么我们有RDMS,几百万行对MySQL来说不是什么大问题。如果你考虑在发布数据中保留用户名,你应该考虑NoSQL数据库。

答案 1 :(得分:1)

公认的做法是使用JOIN语句,而不是在posts表中有用户名。这样做会违反正常形式并导致冗余数据。此外 - 如果用户名更改会发生什么?然后你有两个不再匹配的表(用户,帖子)因为会有user_id与用户名不匹配的记录。只需要考虑一些事情。