「SELECT * FROM table_name」の MySQL 行順序
MySQL では、「SELECT * FROM table_name;」によって返される行の順序。 」 ORDER BY 句のないクエリは保証されません。 RDBMS エンジンは、内部実装の詳細に基づいて順序を決定します。
保証の欠如
挿入順序とは異なり、MySQL は取得された行がテーブルに挿入されたときと同じ順序で。アプリケーションを別の RDBMS に移植するか、MySQL バージョンをアップグレードすると、行取得の順序が変更される可能性があります。
InnoDB のデフォルトの順序
InnoDB ストレージ エンジンは行を返す場合がありますインデックスから読み取られる順序です。ただし、順序はオプティマイザが使用するインデックスによって異なる場合があります。
ストレージ エンジンごとのバリエーション
ストレージ エンジンが異なると実装が異なり、デフォルト行に影響を与える可能性があります。注文。例:
MyISAM の場合、行連続した保管スペースを占有します。行を削除するとギャップが作成され、新しい行を挿入するときに逆の順序で再利用できます。したがって、MyISAM の行の順序も、厳密には挿入順序に基づいていません。
以上がMySQL の `SELECT * FROM table_name` の行順序は保証されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。