mysql - JOIN 返回重复的结果,我应该担心吗?

标签 mysql sql performance select join

我在 MySQL 中使用 JOIN 来选择一篇文章和所有与之相关的评论,但我意识到当我选择一篇文章并且有多个评论时,我得到的结果是一样的文章被评论的数量重复了。例如:
我有包含以下列的 articles 表:
1. id
2. 文章
表格 comments 包含以下列:
1. c_id
2. 正文
3. a_id

我尝试使用的 MySQL 查询:

SELECT  * FROM `articles`
JOIN`comments`
ON (`articles`.id = `comments`.a_id)
WHERE `articles`.id = 134  

这是最终结果:

id  article   c_id  body        a_id
134 Article1    2   Comment1    134
134 Article1    3   Comment2    134
134 Article1    8   Comment3    134  

所以我的问题是:由于我为每条评论获得相同的 article 列值, 这会减慢 MySQL 查询或我的 Web 应用程序的速度吗?因为我请求的数据比我真正需要的要多。
我可以将查询分成 2 个简单的 SELECT 查询,但这太过分了,对吧?

感谢阅读。

编辑:
如果我 article 列的值更大,包含 1k+ 个字符,它会复制它吗?

最佳答案

Since I'm getting the same article column's value for every comment, does this slows the MySQL query or my web application by anyway? since I'm requesting more data then what I really need.

由于数据库传输的字节数多于它需要的字节数,因此会产生相关的性能成本,但可能并不明显。

I can separate the query to 2 simple SELECT queries, but this will be overkill, right?

如果不测量就很难说。如果 article 的值是千兆字节而不是几个字符,那么您可能希望进行两次选择而不是一次选择。

关于mysql - JOIN 返回重复的结果,我应该担心吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11457038/

相关文章:

performance - Oracle,使用子选择时性能低下

mysql - 截断 MySQL 查询中的日期时间列

mysql - 在mysql中使用while时出现重复的数组键

php - 在 CakePHP Schema 中设置 sql_mode

mysql - 如何使用两个不同的 id 从不同的表中选择多个列?

分页性能

mysql - 从第一个表中选择所有内容并使用外键添加特定列的行

sql - 插入最大选定值作为新记录 oracle

java - 澄清 Java/SQLite 批处理和自动提交

excel - 如何比使用 FileSystemObject 更快地(有条件地)遍历文件