Django Mẫu Index đã được giới thiệu trong Django 1,11
là những gì Model.indexes:
Theo mặc định, chỉ số được tạo ra với một thứ tự tăng dần cho mỗi cột. Để xác định chỉ mục có thứ tự giảm dần cho một cột, hãy thêm dấu gạch ngang trước tên của trường.
Đối với truy vấn của bạn, models.Index(fields=['last_name', 'first_name','-date_of_birth',]),
sẽ tạo SQL với (last_name, first_name, date_of_birth DESC).
Cho phép chuyển sang câu hỏi của bạn,
bạn hỏi sự khác biệt giữa 2 truy vấn,
cả hai sẽ mất models.Index(fields=['-date_of_birth',]),
bởi vì ít nhất một sẽ ghi đè các biến được gán. từ câu hỏi của bạn ít nhất là dateofbirth
để nó sẽ ghi đè lên trên hai dòng.
nên theo tài liệu hướng dẫn phương pháp thích hợp hơn là, vì lĩnh vực lập chỉ mục phải ở trong danh sách duy nhất .. vì vậy django sẽ chuẩn bị SQL lập chỉ mục từ danh sách các lĩnh vực ...
models.Index(fields=['last_name', 'first_name', '-date_of_birth']),
Nguồn
2017-07-26 14:24:39
Đề xuất của bạn sẽ tạo một chỉ mục duy nhất - điều này sẽ không hữu ích nếu OP muốn truy vấn chỉ có tên hoặc ngày sinh. – Alasdair