Nó phụ thuộc vào sự phân bố của dữ liệu.
Hãy tưởng tượng tôi có một cuốn sách với 1000 trang được đánh máy chặt chẽ và các từ duy nhất trong cuốn sách của tôi là 'có' và 'không' được lặp đi lặp lại và được phân phối ngẫu nhiên. Nếu tôi được yêu cầu khoanh tròn tất cả các trường hợp 'có', một chỉ mục ở phía sau cuốn sách có giúp ích gì không? Nó phụ thuộc.
Nếu có phân phối ngẫu nhiên một nửa của có và không, thì việc tra cứu trong chỉ mục sẽ không hữu ích. Chỉ mục sẽ làm cho cuốn sách lớn hơn rất nhiều, và dù sao thì tôi sẽ nhanh hơn chỉ bắt đầu từ phía trước và làm theo cách của tôi qua từng trang để tìm kiếm tất cả các trường hợp 'có' và khoanh tròn chúng, thay vì tìm kiếm từng mục trong chỉ mục và sau đó lấy tham chiếu từ mục nhập chỉ mục đến trang mà nó tham chiếu.
Nhưng nếu có, chẳng hạn, chỉ có mười trường hợp 'có' trong cuốn sách nghìn trang của tôi và mọi thứ khác chỉ là hàng triệu không, thì một chỉ mục sẽ giúp tôi tiết kiệm rất nhiều thời gian trong việc tìm kiếm mười trường hợp 'có' đó và khoanh tròn chúng. .
Trong cơ sở dữ liệu cũng vậy. Nếu đó là phân phối 50:50, thì một chỉ mục sẽ không giúp ích được gì - công cụ cơ sở dữ liệu tốt hơn là chỉ cần xem xét dữ liệu từ đầu đến cuối (quét toàn bộ bảng) và chỉ mục sẽ chỉ làm cho cơ sở dữ liệu lớn hơn và chậm hơn để viết và cập nhật. Nhưng nếu nó giống như phân phối 4000: 1 (theo oucil trong chủ đề này), thì một tìm kiếm chỉ mục có thể tăng tốc độ nó lên rất nhiều, nếu nó là 1 trong 4000 mục mà bạn đang tìm kiếm.