Không có KHÔNG CÓ ĐƠN ĐẶT HÀNG XÁC ĐỊNH , một điểm không thể đủ nhấn mạnh vì ai cũng làm sai.
Một bảng trong cơ sở dữ liệu không phải là một bảng html thông thường, nó là một tập hợp các bộ giá trị không có thứ tự. Nó thường gây ngạc nhiên cho các lập trình viên chỉ sử dụng MySQL vì trong cơ sở dữ liệu cụ thể đó, thứ tự của các hàng thường có thể đoán trước được do nó không tận dụng được một số kỹ thuật tối ưu hóa nâng cao. Ví dụ:không thể biết hàng nào sẽ được trả lại hoặc thứ tự của chúng trong bất kỳ truy vấn nào sau đây:
select * from table limit 10
select * from table limit 10 offset 10
select * from table order by x limit 10
Trong truy vấn cuối cùng, thứ tự chỉ có thể dự đoán được nếu tất cả các giá trị trong cột x là duy nhất. RDBMS có thể tự do trả về bất kỳ hàng nào theo bất kỳ thứ tự nào nó muốn miễn là nó đáp ứng các điều kiện của câu lệnh select.
Mặc dù bạn có thể thêm thứ tự mặc định ở cấp Django, điều này khiến nó thêm thứ tự theo mệnh đề vào mọi truy vấn không có thứ tự:
class Table(models.Model):
...
class Meta:
ordering = ['name']
Lưu ý rằng nó có thể là một lực cản hiệu suất, nếu vì lý do nào đó bạn không cần các hàng có thứ tự.