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
が必要な領域の計算に使用される。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.