Tôi đang làm việc trong một dự án với cơ sở dữ liệu Oracle khá lớn (mặc dù câu hỏi của tôi cũng áp dụng tốt cho các cơ sở dữ liệu khác). Chúng tôi có một giao diện web cho phép người dùng tìm kiếm trên hầu hết mọi tổ hợp trường có thể có.
Để làm cho những tìm kiếm này diễn ra nhanh chóng, chúng tôi đang thêm chỉ mục vào các trường và kết hợp các trường mà chúng tôi tin rằng người dùng sẽ thường tìm kiếm. Tuy nhiên, vì chúng tôi không thực sự biết khách hàng của mình sẽ sử dụng phần mềm này như thế nào, nên thật khó để biết nên tạo chỉ mục nào.
Không gian không phải là một mối quan tâm; chúng tôi có một ổ RAID 4 terabyte mà chúng tôi đang sử dụng chỉ một phần nhỏ. Tuy nhiên, tôi lo lắng về các hình phạt hiệu suất có thể xảy ra khi có quá nhiều chỉ số. Bởi vì những chỉ mục đó cần được cập nhật mỗi khi một hàng được thêm, xóa hoặc sửa đổi, tôi tưởng tượng sẽ là một ý tưởng tồi nếu có hàng chục chỉ mục trên một bảng.
Vậy bao nhiêu chỉ số được coi là quá nhiều? 10? 25? 50? Hay tôi chỉ nên đề cập đến những trường hợp thực sự, thực sự phổ biến và hiển nhiên và bỏ qua mọi thứ khác?