添加额外列以减少复杂查询

时间:2012-05-17 14:30:48

标签: mysql join

让我们看两个表,例如表 PostUser
Post表中,列 user_id 是外键。

Post
-id
-user_id
-post

User
-userid
-username

如果我们想要获取海报的用户名,我们必须使用join查询并从User表中获取。

Post表中添加额外列以存储海报的用户名以简化SQL查询会不会更容易。在这种情况下,Post表将具有 user_id 用户名列(用户名列是多余的),但这将消除{{1用于捕捉海报用户名的查询。

join表格中存储用户名的最佳选择是什么

2 个答案:

答案 0 :(得分:1)

创建视图是一种选择:并且ust查询该视图。但是,msql中的视图在性能方面没有像以前那样提供那么多的好处。

可能只是运行连接很好。根据您最终存储的数据量,您可能需要考虑其他方法来提高性能,例如分区表等等 - 但这是针对线下的

答案 1 :(得分:0)

向DB添加冗余数据不是一个好选择。

如果您确实需要简化选择查询,请为该案例创建一个视图。这样,数据就在一个地方,您不需要每次都加入。但简单的加入实际上并不是什么大不了的事。