Gần đây tôi đã tăng tốc một truy vấn phức tạp theo thứ tự độ lớn bằng cách cho SQLite một chỉ mục tốt để làm việc. Kết quả như thế này làm cho tôi tự hỏi liệu tôi có nên lập chỉ mục nhiều trường khác thường được sử dụng cho các mệnh đề JOIN hoặc ORDER BY hay không. Nhưng tôi không muốn quá hăng hái và khiến tôi phản tác dụng: Tôi cho rằng phải có một số lý do: không phải là để tạo chỉ mục hoặc mọi trường sẽ được lập chỉ mục theo mặc định.Nhược điểm của việc có nhiều chỉ số là gì?
Tôi đang sử dụng SQLite trong trường hợp này, nhưng tất nhiên lời khuyên về tư tưởng bất khả tri DBMS cũng được chào đón.
Điều đó bao gồm nó. Đừng quên rằng bạn * cần * cũng cần các chỉ mục thích hợp để có hiệu suất chèn/cập nhật/xóa tốt. Giống như tất cả mọi thứ, đó là một sự cân bằng. –
chèn không được hưởng lợi từ chỉ mục ... Cập nhật và Xóa yêu cầu tìm các hàng liên quan, vì vậy chúng được hưởng lợi từ các chỉ mục cho bước đó, nhưng sau đó nếu bạn có nhiều chỉ mục, ngay cả lợi ích đó cũng có thể bị từ chối. Như bạn nói, đó là tất cả sự cân bằng :) – MatBailie