Số lượng lập chỉ mục và dòng thực hiện quá nhiều sẽ phụ thuộc vào rất nhiều yếu tố. Trên các bảng nhỏ như bảng "danh mục", bạn thường không muốn hoặc không cần chỉ mục và nó thực sự có thể ảnh hưởng đến hiệu suất. Lý do là phải mất I / O (tức là thời gian) để đọc một chỉ mục và sau đó là I / O nhiều hơn và thời gian để truy xuất các bản ghi được liên kết với các hàng phù hợp. Một ngoại lệ là khi bạn chỉ truy vấn các cột có trong chỉ mục.
Trong ví dụ của bạn, bạn đang truy xuất tất cả các cột và chỉ với 22 hàng và có thể nhanh hơn nếu chỉ thực hiện quét bảng và sắp xếp chúng thay vì sử dụng chỉ mục. Trình tối ưu hóa có thể / nên làm điều này và bỏ qua chỉ mục. Nếu đúng như vậy, thì chỉ mục chỉ chiếm dung lượng mà không có lợi ích gì. Nếu bảng "danh mục" của bạn được truy cập thường xuyên, bạn có thể muốn xem xét ghim nó vào bộ nhớ để máy chủ db giữ cho nó có thể truy cập được mà không cần phải truy cập đĩa mọi lúc.
Khi thêm chỉ mục, bạn cần cân bằng dung lượng đĩa, hiệu suất truy vấn và hiệu suất cập nhật và chèn vào bảng. Bạn có thể nhận được nhiều chỉ mục hơn trên các bảng tĩnh và không thay đổi nhiều so với các bảng có hàng triệu bản cập nhật mỗi ngày. Bạn sẽ bắt đầu cảm thấy ảnh hưởng của việc duy trì chỉ mục tại thời điểm đó. Tuy nhiên, điều gì có thể chấp nhận được trong môi trường của bạn và chỉ có thể được xác định bởi bạn và tổ chức của bạn.
Khi thực hiện phân tích, hãy đảm bảo tạo / cập nhật thống kê bảng và chỉ mục để bạn có thể yên tâm tính toán chính xác.