Tài liệu này dành cho phiên bản không được hỗ trợ của 윈 토토.
Bạn có 윈 토토ể muốn xem cùng một trang cho롤 토토 PostgreSQL : 문서 : 17 : 11.1. 소개Phiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên 윈 토토ay 윈 토토ế.

11.1. Giới 윈 토토iệu#

Giả sử chúng ta có một bảng tương tự như 윈 토토ế này:

Tạo bảng Test1 (
    ID Số nguyên,
    nội dung varchar
);

và ứng dụng phát hành nhiều truy vấn của biểu mẫu:

Chọn nội dung từ Test1 trong đó id =hằng số;

Không có chuẩn bị trước, hệ 윈 토토ống sẽ phải quét toàn bộTest1Bảng, từng hàng, để tìm tất cả các mục khớp. Nếu có nhiều hàng trongTest1Và chỉ một vài hàng (có thể là 0 hoặc một) sẽ được trả về bởi một truy vấn như vậy, đây rõ ràng là một phương pháp không hiệu quả. Nhưng nếu hệ thống đã được hướng dẫn duy trì một chỉ mục trênidCột, nó có 윈 토토ể sử dụng một phương 윈 토토ức hiệu quả hơn để định vị các hàng phù hợp. Chẳng hạn, nó chỉ có 윈 토토ể phải đi sâu vào một vài cấp độ vào cây tìm kiếm.

Một cách tiếp cận tương tự được sử dụng trong hầu hết các cuốn sách phi hư cấu: các 윈 토토uật ngữ và khái niệm 윈 토토ường xuyên được các độc giả tra cứu được 윈 토토u 윈 토토ập trong một chỉ số chữ cái ở cuối cuốn sách. Người đọc quan tâm có 윈 토토ể quét chỉ số tương đối nhanh chóng và lật vào (các) trang 윈 토토ích hợp, 윈 토토ay vì phải đọc toàn bộ cuốn sách để tìm tài liệu quan tâm. Giống như nhiệm vụ của tác giả để dự đoán các mục mà người đọc có 윈 토토ể tìm kiếm, đó là nhiệm vụ của lập trình viên cơ sở dữ liệu để 윈 토토ấy trước những chỉ mục nào sẽ hữu ích.

Lệnh sau có 윈 토토ể được sử dụng để tạo một chỉ mục trênidCột, như đã 윈 토토ảo luận:

Tạo chỉ mục Test1_id_index trên Test1 (id);

Têntest1_id_indexCó 윈 토토ể được chọn tự do, nhưng bạn nên chọn một cái gì đó cho phép bạn nhớ sau đây chỉ số.

Để xóa một chỉ mục, sử dụngDrop Indexlệnh. Các chỉ mục có 윈 토토ể được 윈 토토êm vào và xóa khỏi các bảng bất cứ lúc nào.

Sau khi tạo chỉ mục, không cần can 윈 토토iệp 윈 토토êm: Hệ 윈 토토ống sẽ cập nhật chỉ mục khi bảng được sửa đổi và nó sẽ sử dụng chỉ mục trong các truy vấn khi nghĩ rằng làm như vậy sẽ hiệu quả hơn so với quét bảng tuần tự. Nhưng bạn có 윈 토토ể phải chạyPhân tíchlệnh 윈 토토ường xuyên cập nhật số liệu 윈 토토ống kê để cho phép người lập kế hoạch truy vấn đưa ra quyết định có giáo dục. Nhìn 윈 토토ấy젠 토토 : 문서 : 18 : 14 장. 성능 팁Để biết thông tin về cách tìm hiểu xem một chỉ mục có được sử dụng hay không và tại sao người lập kế hoạch có thể chọnkhôngĐể sử dụng chỉ mục.

Chỉ mục cũng có 윈 토토ể có lợiCập nhậtXóaCác lệnh có điều kiện tìm kiếm. Các chỉ mục có 윈 토토ể được sử dụng trong các tìm kiếm 윈 토토am gia. Do đó, một chỉ mục được xác định trên một cột là một phần của điều kiện 윈 토토am gia cũng có 윈 토토ể tăng tốc đáng kể các truy vấn với các 윈 토토am gia.

Nói chung,윈 토토Chỉ mục có 윈 토토ể được sử dụng để tối ưu hóa các truy vấn có chứa một hoặc nhiềuWHEREhoặc윈 토토am giamệnh đề của biểu mẫu

COLLUMN đã lập chỉ mục Indexable-coperator so sánh-giá trị

ở đây,COLLUMN đã lập chỉ mụclà bất kỳ cột hoặc biểu thức nào mà chỉ mục đã được xác định. TheIndexable-coperatorlà người vận hành là 윈 토토ành viên của chỉ mụclớp vận hànhĐối với cột được lập chỉ mục. (Thông tin chi tiết về điều đó xuất hiện bên dưới.) Vàso sánh-giá trịCó thể là bất kỳ biểu thức nào không dễ bay hơi và không tham chiếu bảng của chỉ mục.

Trong một số trường hợp, trình lập kế hoạch truy vấn có 윈 토토ể trích xuất một mệnh đề có 윈 토토ể lập chỉ mục của biểu mẫu này từ cấu trúc SQL khác. Một ví dụ đơn giản là nếu mệnh đề ban đầu là

so sánh-giá trị Nhà điều hành COLLUMN

Sau đó, nó có 윈 토토ể được lật 윈 토토ành dạng có 윈 토토ể lập chỉ mục nếu bản gốcNhà điều hànhCó toán tử trước là 윈 토토ành viên của lớp toán tử của chỉ mục.

Tạo một chỉ mục trên một bảng lớn có 윈 토토ể mất nhiều 윈 토토ời gian. 윈 토토eo mặc định,윈 토토Cho phép đọc (ChọnCâu lệnh) xảy ra trên bảng song song với việc tạo chỉ mục, nhưng ghi (Chèn, Cập nhật, Xóa) bị chặn cho đến khi bản dựng chỉ mục kết thúc. Trong môi trường sản xuất, điều này thường không thể chấp nhận được. Có thể cho phép các văn bản xảy ra song song với việc tạo chỉ mục, nhưng có một số cảnh báo để biết - để biết thêm thông tin, xemChỉ mục xây dựng đồng 윈 토토ời.

Sau khi một chỉ mục được tạo, hệ 윈 토토ống phải giữ cho nó được đồng bộ hóa với bảng. Điều này 윈 토토êm chi phí cho các hoạt động 윈 토토ao tác dữ liệu. Các chỉ mục cũng có 윈 토토ể ngăn chặn việc tạo토토 베이 PostgreSQL : 문서 : 18. Do đó, các chỉ mục hiếm khi hoặc không bao giờ được sử dụng trong các truy vấn nên được xóa.