Tôi có bảng sau đây (file_category_tbl
) để thể hiện các kết nối giữa các tệp và danh mục.Làm cách nào để lập chỉ mục chính xác các mục sau?
fileId - bigint(20)
categoryId - bigint(20)
order - int(10)
Vì vậy mà các tập tin trong danh mục có thể được đặt hàng, tôi có một lĩnh vực trật tự ... Vì vậy câu hỏi của tôi là những gì chỉ tôi sẽ yêu cầu cho hiệu suất tối ưu trên như sau:
SELECT * FROM file_category_tbl WHERE categoryId="3" ORDER BY order ASC
Tôi có một chỉ số duy nhất là UNIQUE (fileId
, categoryId
); Vì không thể giống nhau fileId
với cùng một categoryId
. Tôi cũng có chỉ mục trên categoryId
, vì đây là những gì đang được tìm kiếm. Tôi cũng có chỉ mục trên order
? ... nhưng điều này có cần thiết không? vì nó chỉ được làm một orderBy
về vấn đề này ...
Kind Regards cho bất kỳ trả lời ... J
tôi nghĩ một chỉ mục đa trên 'categoryId, order' phải đủ cho truy vấn trên – Ankur
Tôi nghĩ rằng mysql không quan tâm đến các chỉ mục trong phần' ORDER BY'. EDIT: Nếu mysql có thể hoặc không thể sử dụng các chỉ mục trên 'ORDER BY' phụ thuộc vào rất nhiều: http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html – Krycke