ホームページ >バックエンド開発 >PHPチュートリアル >ヘルプディスカッション: データ量が少し大きい場合 (数十万アイテム)、結合テーブル クエリ/サブクエリ/PHP を使用した結果の段階的分析を使用した複数の単一テーブル クエリの長所、短所、およびオプション
mysql の最適化
まず私の現在のプロジェクトの状況について話させてください テーブル構造を投稿して、一緒に話し合うこともできます。
結合クエリの左結合、右結合を使用することをお勧めします。
select aid,b.name where tb1 a,tb2 b where a.id=b.id このメソッドは、まず tb1 と tb2 の結果をデカルト積に変換します。
次に、デカルト積の a.id=b.id を使用してエントリをフィルタリングします。これにより、効率が大幅に低下します。
したがって、左結合、右結合をさらに使用してください
結合クエリの左結合、右結合を使用することをお勧めします。
select aid,b.name where tb1 a,tb2 b where a.id=b.id このメソッドは、まず tb1 と tb2 の結果をデカルト積に変換します。
次に、デカルト積の a.id=b.id を使用してエントリをフィルタリングします。これにより、効率が大幅に低下します。
したがって、左結合と右結合をもっと使用してください
結合クエリを使用するときは、最初に左結合を使用してから、これらの where 条件を使用します。これは競合しないはずです。
それを説明して分析してください
結合クエリを完全にキャンセルできない場合は、主にインデックスが適切に確立されているかどうか、および SQL がインデックスを適切に使用しているかどうかに依存します
構造と SQL を取り出して分析するのが最善です。それ
CPU 使用率とプロセスを追跡することをお勧めします