ORDER BY
がないと、行が特定の順序で返されるという保証はありません。 クエリの句。
テーブル内のすべての行のすべての列を返す単純なクエリについて考えてみます。例:
SELECT * FROM mytable ;
そのクエリの場合、MySQLはテーブルの最初から全表スキャンを実行する可能性があります。したがって、行は物理ストレージで見つかった順序で返される可能性があります。
これは、削除、更新、再編成がなく、挿入された行のスペースが後で再利用され、新しく挿入された行を格納するために再利用された場合に、行が挿入された順序にほぼ対応する可能性があります。
ただし、この動作は保証されていません。
挿入された順序で行を返すには、クエリでORDER BY
を含めて、行が返される順序を指定する必要があります。 条項。
行が「挿入順序」で返されるためには、クエリがその情報を利用できるようにするか、それを導出できる必要があることを意味します。単一のテーブルに対する単純なクエリの場合、それは情報を行に格納する必要があることを意味します。