ホームページ  >  記事  >  バックエンド開発  >  mysql は、大量のデータと 2 つのテーブルをクエリする必要がある SQL ステートメントをどのように最適化しますか?

mysql は、大量のデータと 2 つのテーブルをクエリする必要がある SQL ステートメントをどのように最適化しますか?

WBOY
WBOYオリジナル
2016-08-26 10:28:221194ブラウズ

2 つのテーブル A には 2000 のエントリがあり、B には 2000 万のエントリがあります
A から a.xxx、b.xxx、b.xxxx を選択し、a.xx = 0 の a.id = b.bid で b を左結合しますそして a.xxx != 0;

返信内容:

2 つのテーブル A には 2000 のエントリがあり、B には 2000 万のエントリがあります
A から a.xxx、b.xxx、b.xxxx を選択し、a.xx = 0 の a.id = b.bid で b を左結合しますそして a.xxx != 0;

  1. ページをチェックインし、一度に大量のデータを取得しないでください

  2. 冗長性をチェックするbの2つのフィールドはテーブルaにあるため、結合する必要はありません

  3. キャッシュする必要があります。キャッシュしないとデータベースがサポートできなくなります

  4. データ量が数千万に達したら、水平分割を検討する必要があります

まず、私はバックエンドの人間ではないので、知っていることしか言えません

ツールが実行計画を確認できるかどうかはわかりません。実行計画が確認できる場合は、どのプロセスがより大きなデータを生成するかは、最適化できるかどうかによって異なります。

インデックスを追加すると最適化できるはずであることもわかっています

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。