ホームページ >バックエンド開発 >PHPチュートリアル >MySQL マニュアル バージョン 5.0.20-MySQL の最適化 (2) (1)_PHP チュートリアル

MySQL マニュアル バージョン 5.0.20-MySQL の最適化 (2) (1)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:03:29843ブラウズ

7.2.1 EXPLAIN 構文 (SELECT 関連情報の取得)


EXPLAIN tbl_name

or:


EXPLAIN SELECT select_options

EXPLAIN ステートメントは DESCRIBE の同義語として使用でき、また、 a MySQL によって実行される SELECT ステートメントに関する情報。


EXPLAIN tbl_name 構文は、DESCRIBE tbl_name または SHOW COLUMNS FROM tbl_name と同じです。


SELECT ステートメントの前にキーワード EXPLAIN を使用すると、MYSQL は SELECT ステートメントがどのように実行されるかを説明し、テーブルがどのように接続されているか、接続の順序、その他の情報を示します。


この章では主にEXPLAINの2番目の使用法について説明します。


EXPLAIN の助けを借りて、レコードを検索するためにインデックスを使用し、SELECT をより速く実行するためにテーブルにインデックスを追加するタイミングがわかります。


インデックスの不適切な使用によって問題が発生した場合は、ANALYZE TABLE を実行して、キーのカーディナリティなどのテーブルの統計を更新できます。これは、最適化でより適切な選択を行うのに役立ちます。詳細は、「14.5.2.1 ANALYZE TABLEの構文」を参照してください。


オプティマイザーが最適な順序でデータテーブルを結合するかどうかも確認できます。オプティマイザが SELECT ステートメントでテーブル名の順序で結合するには、クエリの先頭で SELECT だけでなく SELECT STRAIGHT_JOIN を使用します。


EXPLAIN は、SELECT ステートメントで使用される各テーブルに関する情報を含むレコードの行を返します。テーブルは、MySQL が実行しようとしているクエリで読み取られた順序で結果にリストされます。 MySQL は、複数の接続をスキャンする方法 (シングル スイープ、マルチジョイン) を使用して接続を解決します。これは、MySQL が最初のテーブルからレコードを読み取り、次に 2 番目のテーブルで対応するレコードを検索し、次に 3 番目のテーブルでそれを検索するということを意味します。すべてのテーブルがスキャンされると、選択されたフィールドが出力され、見つからなくなるまですべてのテーブルを遡って調べます。これは、一部のテーブルに一致するレコードが複数ある可能性があるため、次のレコードはこのテーブルから読み取られ、次の A から読み取られます。テーブルは処理の続行を開始します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630973.html技術記事 7.2.1 EXPLAIN 構文 (SELECT 関連情報の取得) EXPLAIN tbl_name または: EXPLAIN SELECT select_options EXPLAIN ステートメントは、DESCRIBE の同義語として使用することも、...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。