Предложение, необходимое для оптимизации запроса 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
Короче говоря, вопросы обсуждаются в таблице «постов» и ссылаются на их вопрос_ид.
У меня есть какой-то избыточный код в моем PHP-коде, потому что я не знаю достаточно MySQL, чтобы запросить базу данных один раз, чтобы получить результаты, которые мне нужны из этих двух запросов.
Является ли способ, которым у меня все хорошо и дело с избыточными частями моего PHP-кода или есть лучший способ выполнить это?
Решение
Используйте Присоединиться вместо соответствующих столбцов в разделе «Где»
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 запроса полностью отлично, объединяя вывод из нескольких таблиц не очень чистая идея.
Вам просто нужно проверить, есть ли у вас объединенные индексы на всех полях, которые вы используете, где, и это будет очень быстро.