Vorschlag benötigt zur Optimierung einer MySQL-Abfrage
-
09-10-2019 - |
Frage
Ich bin mit parametrisierte Abfragen mit PHP Ich habe die folgenden zwei Abfragen:
SELECT username,question_text
FROM questions,users
WHERE questions.question_id = 4 AND questions.user_id = users.user_id
und
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
Kurz gesagt, werden die Fragen in dem „Beiträge“ Tisch diskutiert und durch ihre question_id verwiesen werden.
Ich habe einigen redundanten Code in meinem PHP-Code, weil ich genug mysql weiß nicht, die Datenbank abzufragen, sobald die Ergebnisse erhalten ich diese beiden Abfragen muß aus.
Ist die Art, wie ich tue es gut und befassen sich mit den redundanten Teilen meines PHP-Code oder gibt es einen besseren Weg, dies zu erreichen?
Lösung
Einsatz kommt anstelle von passenden Spalten in where-Klausel
SELECT username,question_text
FROM questions INNER JOIN users on questions.user_id = users.user_id
WHERE questions.question_id = 4
Und
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
Andere Tipps
2 Abfragen sind völlig in Ordnung gibt, aus mehreren Tabellen Ausgabe kombiniert, ist nicht sehr sauber Idee.
Sie müssen nur überprüfen, ob Sie alle kombinierten Indizes auf alle Felder, die Sie verwenden in WO, und es wird sehr schnell sein.