Предложение, необходимое для оптимизации запроса MySQL

StackOverflow https://stackoverflow.com/questions/3976688

  •  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 запроса полностью отлично, объединяя вывод из нескольких таблиц не очень чистая идея.

Вам просто нужно проверить, есть ли у вас объединенные индексы на всех полях, которые вы используете, где, и это будет очень быстро.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top