:: DEVELOPER ZONE
HAVING を使用するのではなく LIMIT row_count を使用している場合、MySQL によるクエリの処理方法が異なる場合があります。
LIMIT を使用して数レコードしか選択していないと、フルテーブルスキャンが行われそうな場合に、MySQL はインデックスを使うことがある。
ORDER BY とともに LIMIT row_count を使用している場合、MySQL ではすべてのテーブルがソートされるのではなく、最初の row_count レコードの検索が行われた時点でただちにソートを終了する。
LIMIT row_count を DISTINCT とあわせて使用した場合、MySQL は一意の row_count 行のレコードを検索するとただちに停止する。
GROUP BY がキーを順番に読む(またはキーのソートを実行して読む)ことで解決でき、キーの値が変わるまで
サマリが計算される場合もある。この場合、LIMIT row_count では不要な GROUP BY 値の計算がすべて行われなくなる。
MySQL が最初の # レコードをクライアントに送信すると、クエリが中止される(SQL_CALC_FOUND_ROWS を使用していない場合)。
LIMIT 0 は常に迅速に空のセットを返す。これは、クエリのチェックおよび結果として返るカラムのカラム型の取得に役立つ。
サーバでテンポラリテーブルを使用してクエリが解決される場合、LIMIT row_count が必要な領域の計算に使用される。
© 1995-2005 MySQL AB. All rights reserved.
