DISTINCT が ORDER BY
        と組み合わされて用いられると、多くの場合はテンポラリテーブルが必要になります。
      
        DISTINCT は GROUP BY
        をともなう可能性が高いので、SELECT
        されないフィールドを ORDER BY
        または HAVING
        した時に、どのように MySQL
        が機能するかを認識しておく必要があります。
        See 項6.3.7.3. 「非表示のフィールドに対する GROUP BY」。
      
        LIMIT row_count を
        DISTINCT
        とともに使用した場合、MySQL
        は一意のレコードを row_count
        行検索するとただちに検索を停止します。
      
使用するテーブル内のカラムを使用しない場合、MySQL は最初にマッチするレコードを検索するとただちに未使用テーブルのスキャンを停止します。
SELECT DISTINCT t1.a FROM t1,t2 WHERE t1.a=t2.a;
        ここでは、t1 が t2
        の前に使用され(EXPLAIN
        によるチェック)、t2
        で最初のレコードが検索されると
        t2からの読み取り(t1
        の特定のレコード)を停止します。
      
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.

