优化MySQL查询所需的建议
-
09-10-2019 - |
题
我正在使用PHP的参数化查询,我有以下两个查询:
SELECT username,question_text
FROM questions,users
WHERE questions.question_id = 4 AND questions.user_id = users.user_id
和
SELECT username, post_text
FROM posts,users WHERE posts.question_id = 4
AND posts.user_id = users.user_id ORDER BY posts.post_id ASC
简而言之,这些问题正在“帖子”表中进行讨论,并由其Question_ID引用。
我的PHP代码中有一些冗余代码,因为我不了解足够的MySQL来查询数据库一次以获取我需要这两个查询中需要的结果。
我做得很好,处理PHP代码的冗余部分,还是有更好的方法来实现这一目标?
解决方案
使用加入而不是在Where子句中匹配列
SELECT username,question_text
FROM questions INNER JOIN users on questions.user_id = users.user_id
WHERE questions.question_id = 4
和
SELECT username, post_text
FROM posts INNER JOIN users on posts.user_id = users.user_id
WHERE posts.question_id = 4
ORDER BY posts.post_id ASC
其他提示
2查询完全可以,将几张表的输出结合在一起不是很干净。
您只需要检查是否在您使用的所有字段上都有所有组合索引,并且它将非常快。
不隶属于 StackOverflow