デフォルトの注文はありません 、誰もが間違っているので十分に強調できない点。
データベース内のテーブルは、通常のhtmlテーブルではなく、順序付けされていないタプルのセットです。その特定のデータベースでは、いくつかの高度な最適化手法を利用していないため、行の順序が予測可能であることが多いため、MySQLにしか慣れていないプログラマーを驚かせることがよくあります。たとえば、次のクエリでは、返される行やその順序を知ることはできません。
select * from table limit 10
select * from table limit 10 offset 10
select * from table order by x limit 10
最後のクエリでは、列xのすべての値が一意である場合にのみ順序を予測できます。 RDBMSは、selectステートメントの条件を満たす限り、任意の行を任意の順序で自由に返すことができます。
Djangoレベルでデフォルトの順序を追加することもできますが、これにより、順序付けされていないすべてのクエリにorderby句が追加されます。
class Table(models.Model):
...
class Meta:
ordering = ['name']
何らかの理由で順序付けられた行が必要ない場合は、パフォーマンスの低下になる可能性があることに注意してください。