PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thứ tự mặc định của danh sách được trả về từ lệnh gọi bộ lọc Django là gì?

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ự.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psql:không thể kết nối với máy chủ:Không có tệp hoặc thư mục như vậy (Mac OS X)

  2. Về tác động của việc viết toàn trang

  3. làm thế nào để thay đổi cổng nghe postgresql trong windows?

  4. PostgreSQL 11:Người đánh giá bản vá cho các bản vá phân vùng

  5. Cách kiểm tra SQL đặc biệt của tôi với các tham số trong cửa sổ truy vấn Postgres