ホームページ >バックエンド開発 >PHPチュートリアル >Thinkphp では、mysql の 2 つのテーブル クエリに in ids または left join を使用する必要がありますか (ページングの場合、ids 配列は通常約 20 です)。
どのソリューションが優れているかわかりません
通常は分割テーブルクエリであり、キャッシュに適していると本で読みました
どのソリューションが優れているかわかりません
通常は分割テーブルクエリであり、キャッシュに適していると本で読みました
主にデータの量とアプリケーションのシナリオに依存します。データの量が少ない場合、この 2 つはほぼ同じです。
where in() クエリと複数テーブルの左結合クエリのどちらがより効率的ですか?
あなたは SQL の問題について話しています。 left join を使用する人の数は in を使用する人の数をはるかに上回っています。
これら 2 つの構文の使用シナリオは異なります。In は ID を認識して ID グループに一致するレコードを除外しますが、左結合は関連テーブルです。ページングを行う場合は、関連付けられたテーブルが大きなテーブル (数十万または数百万のレコード) であるかどうかを確認してから、左結合を使用するかどうかを決定します。結合を使用する場合でも、それを説明して確認するのが最善です。最適な場合はいいえ。最適な場合は、Explain の結果を確認して最適化します。非常に大きなテーブルの場合は結合しないことをお勧めします。in を使用する場合は、ID を抽出してセカンダリ テーブルにクエリを実行してデータをメイン テーブル データ セットに組み立てるときに複数のループが発生しないようにする必要があり、必ずしも効率が遅くなるわけではありません。 。