"2つ以上の個別のSQLコマンド"または "1つの 'join' SQLコマンドを使用してパフォーマンスが疑わしいです。ここで2つの別々のSQL文またはJOINを持つ1つのSQL文を使用する方が速いのですか?
がものです:
たとえば、私は2つのテーブルがあります:post
、user
post
をこのポストを示すのuser_idがuser
にいくつかのユーザーによって発行されたと私はされてい投稿とユーザー名の両方を抽出します。
私はどちらか
SELECT * FROM `post` LEFT JOIN `user` on post.user_id = user.id WHERE 1
または
$rows = $db->sql("SELEFT * FROM `post` WHERE 1") for $row in $rows: $db->sql("SELECT * FROM `user` WHERE id = $row['user_id']")
は、私は1つは、より良い性能を持っているであろう思ったんだけどできますか?
さらに、3つ以上のテーブルを結合すると、どちらの方がパフォーマンスが向上するのでしょうか?
INNER JOINと比較して、LEFT JOIN(またはRIGHT JOINまたはFULL JOIN)を使用するとパフォーマンスが低下しますが、ゼロではありません。できればLEFT JOINを避けてJOINだけを使用してください。あなたはユーザーの記録がない投稿を持っていますか?もしそうでないなら(そしてそうすべきではありません)、INNER JOINが適切です。 –