Không có chỉ mục nào không hút, nhưng bạn phải chú ý đến cách bạn sử dụng chúng hoặc chúng có thể phản tác dụng về hiệu suất truy vấn của bạn.
Đầu tiên: Lược đồ/thiết kế
Tại sao bạn tạo bảng chỉ với một cột? Đó có thể là chuẩn hóa một bước cho đến nay. thiết kế cơ sở dữ liệu là một trong những điều quan trọng nhất để xem xét trong việc tối ưu hóa hiệu suất
Thứ hai: Chỉ số
Tóm lại các chỉ số sẽ giúp các cơ sở dữ liệu để thực hiện tìm kiếm nhị phân của hồ sơ của bạn. Nếu không có chỉ mục trên một cột (hoặc tập hợp các cột), cơ sở dữ liệu thường sẽ quay trở lại một lần quét bảng. Việc quét bảng rất tốn kém vì nó bao gồm việc liệt kê từng bản ghi.
Không quan trọng lắm khi chỉ mục quét xem có bao nhiêu bản ghi trong bảng cơ sở dữ liệu. Do tìm kiếm cây nhị phân (cân bằng) tăng gấp đôi số lượng bản ghi sẽ chỉ dẫn đến một bước tìm kiếm bổ sung.
Xác định khóa chính của bảng, SQL sẽ tự động đặt một chỉ mục nhóm trên (các) cột đó. Các chỉ mục được nhóm thực hiện rất tốt. Ngoài ra, bạn có thể đặt các chỉ mục không nhóm trên các cột được sử dụng thường xuyên trong các câu lệnh SELECT, JOIN, WHERE, GROUP BY và ORDER BY. Hãy nhớ rằng các chỉ mục có một chồng chéo nhất định, cố gắng không bao giờ đưa chỉ mục nhóm của bạn vào một chỉ mục không được nhóm.
Cũng thú vị có thể là yếu tố lấp đầy trên các chỉ mục. Bạn có muốn tối ưu hóa bảng của bạn cho đọc (yếu tố điền cao - ít lưu trữ, ít IO) hoặc viết (yếu tố lấp đầy thấp hơn, ít xây dựng lại các trang cơ sở dữ liệu của bạn).
Thứ ba: Phân vùng
Một trong những lý do để sử dụng phân vùng là tối ưu hóa quyền truy cập dữ liệu của bạn. Giả sử bạn có 1 triệu bản ghi trong đó 500.000 bản ghi không còn phù hợp nữa nhưng được lưu trữ cho mục đích lưu trữ. Trong trường hợp này, bạn có thể quyết định phân vùng bảng và lưu trữ 500.000 bản ghi cũ trên bộ nhớ chậm và 500.000 bản ghi khác trên bộ nhớ nhanh.
Để đo là biết
Cách tốt nhất để có được cái nhìn sâu sắc vào những gì xảy ra là để đo lường những gì xảy ra với cpu và io của bạn. Microsoft SQL server có một số công cụ như Profiler và Execution kế hoạch trong Management Studio sẽ cho bạn biết thời gian truy vấn của bạn, số lượng đọc/ghi và sử dụng CPU. Ngoài ra kế hoạch thực hiện sẽ cho bạn biết chỉ số IF hoặc đang được sử dụng. Ngạc nhiên thay, bạn có thể thấy việc quét bảng mặc dù bạn không mong đợi nó.
Hiệu ứng lập chỉ mục sẽ giống nhau, nhưng bạn muốn có chỉ mục thứ hai thì sao? –