ホームページ >バックエンド開発 >PHPチュートリアル >MySQL マニュアル バージョン 5.0.20-MySQL の最適化 (2) (1) (2)_PHP チュートリアル
テーブル内には一致する行が最大 1 行あり、クエリの先頭で読み取られます。レコードは 1 行しかないため、その行のフィールド値は残りの最適化プロセスでは定数値として扱うことができます。 Const テーブルは一度読み取るだけで済むため、クエリが非常に高速です。 const は、PRIMARY KEY または UNIQUE インデックスとの固定値の比較がある場合に使用されます。次のクエリでは、tbl_name は const テーブルです:
SELECT * FROM tbl_name WHERE Primary_key=1;
SELECT * FROM tbl_name
WHERE Primary_key_part1=1 AND Primary_key_part2=2;
eq_ref
このテーブルからレコードの行が読み取られ、前のテーブルから読み取られたレコードと結合されます。 const 型とは異なり、これが最適な接続型です。これは、インデックスのすべての部分が結合に使用され、インデックスのタイプが PRIMARY KEY または UNIQUE である場合に使用されます。 eq_ref は、「=」比較を行うときにフィールドを取得するために使用できます。比較される値は固定値または式であり、テーブル内のフィールドは式で使用でき、テーブルを読み取る前に準備されています。次の例では、MySQL は eq_ref 接続を使用して ref_table を処理します。 1= other_table.column
AND ref_table.key_column_part2=1;
ref
取得した値に一致するテーブル内のすべてのレコードがフェッチされ、前のテーブルからフェッチされたレコードと結合されます。 ref は、結合子がキーの左端のプレフィックスを使用する場合、またはキーが PRIMARY KEY または UNIQUE インデックスではない場合 (つまり、結合子がキー値に基づいて 1 つのレコードしか取得できない場合) に使用されます。これは、キー値に基づいて少数の一致するレコードのみがクエリされる場合に適した接続タイプです。 ref は、= 演算子を使用して取得フィールドを比較する場合にも使用できます。次の例では、MySQL は ref を使用して ref_table を処理します。
http://www.bkjia.com/PHPjc/630972.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/630972.html
技術記事
テーブル内には一致する行が最大 1 行あり、クエリの先頭で読み取られます。レコードは 1 行しかないため、残りの最適化プロセスでは、この行のレコードのフィールド値は...