ホームページ  >  記事  >  データベース  >  SQL_BIG_SELECTS とは何ですか? MySQL での SQL_BIG_SELECTS の発生を回避するにはどうすればよいですか?

SQL_BIG_SELECTS とは何ですか? MySQL での SQL_BIG_SELECTS の発生を回避するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-11 14:07:03952ブラウズ

What is SQL_BIG_SELECTS and how can I avoid encountering it in MySQL?

MySQL の SQL_BIG_SELECTS について

SQL_BIG_SELECTS は、非常に大規模で潜在的に問題のある SELECT クエリの実行を防ぐために設計された MySQL 最適化パラメータです。クエリが「大きすぎる」と判断されると、MySQL は次のようなエラーを返すことがあります:

ERROR 1104: The SELECT would examine too many records and probably take a very long time.
Check your WHERE and use SET OPTION SQL_BIG_SELECTS=1 if the SELECT is ok

この問題に効果的に対処するには、特定の質問に対する答えを調べてみましょう:

1. 「BIG SELECTS」のしきい値

MySQL は、「max_join_size」システム変数の値に基づいて「BIG SELECT」を決定します。クエリがこの数を超える行を検査する可能性がある場合、そのようにフラグが立てられます。現在の最大結合サイズ設定を表示するには、「変数の表示」を使用します。

2.インデックス作成と Big SELECT

適切なインデックス作成と効率的な WHERE 句により、SQL_BIG_SELECTS エラーが発生するリスクを軽減できます。インデックスを使用すると、クエリの実行が高速化され、検査される行数が減ります。適切に定義された WHERE 句により、クエリの範囲がさらに縮小され、不必要なデータのスキャンを回避できます。

3.最後の手段としての SQL_BIG_SELECTS

SQL_BIG_SELECTS は一般的な解決策として使用すべきではありません。これは、過度に大規模なクエリによるシステム リソースの消費を防ぐための緊急措置として意図されています。グローバルまたはすべてのユーザーに対して設定することは避けることをお勧めします。

4. SQL_BIG_SELECTS の構成

SQL_BIG_SELECTS を設定するには、次のことができます。

  • my.cnf 構成ファイルを変更し、[mysqld] の下に「sql-big-selects=ON」を追加します。
  • サーバーの起動時に、 --sql-big-selects コマンドライン オプション。
  • クエリ "SET SESSION SQL_BIG_SELECTS=1" を使用してセッション ベースで設定します。

5. SQL_BIG_SELECTS の代替案

SQL_BIG_SELECTS に頼る前に、次の代替案を検討してください。

  • 適切なインデックス作成と WHERE 句を使用してクエリを最適化します。
  • max_join_size システムを増やします。より大きな値を許可する変数クエリ。

以上がSQL_BIG_SELECTS とは何ですか? MySQL での SQL_BIG_SELECTS の発生を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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