Chỉ mục thường được sử dụng để nâng cao hiệu suất cơ sở dữ kèo bóng đá pháp. Họ nên được xác định trên các cột bảng (hoặc thuộc tính lớp) Được sử dụng như trình độ trong các truy vấn lặp đi lặp lại. Sử dụng không phù hợp sẽ dẫn đến hiệu suất chậm hơn, vì thời gian cập nhật và chèn được tăng lên trong sự hiện diện của các chỉ số.
Chỉ mục cũng có thể được sử dụng để thực thi tính duy nhất của bảng kèo bóng đá pháp chính. Khi một chỉ mục được khai báo duy nhất, nhiều hàng bảng Với các mục chỉ mục giống hệt nhau sẽ không được phép. Cho mục đích này, Mục tiêu là đảm bảo tính nhất quán của dữ liệu, không cải thiện hiệu suất, Vì vậy, sự thận trọng ở trên về việc sử dụng không phù hợp không được áp dụng.
hai dạng chỉ số có thể được xác định:
cho aChỉ số giá trị, Các trường chính Đối với chỉ mục được chỉ định là tên cột; Nhiều cột có thể được chỉ định nếu phương thức truy cập chỉ mục hỗ trợ Chỉ mục nhiều cột.
cho aChỉ số chức năng, kèo bóng đá pháp chỉ mục là được xác định dựa trên kết quả của kèo bóng đá pháp hàm được áp dụng cho kèo bóng đá pháp hoặc nhiều thuộc tính của kèo bóng đá pháp lớp duy nhất. Đây là kèo bóng đá pháp chỉ số kèo bóng đá pháp cột (cụ thể là, kết quả hàm) ngay cả khi hàm sử dụng nhiều hơn hơn kèo bóng đá pháp trường đầu vào. Các chỉ số chức năng có thể được sử dụng để có được truy cập nhanh vào dữ liệu dựa trên các nhà khai thác bình thường yêu cầu kèo bóng đá pháp số chuyển đổi để áp dụng chúng vào dữ liệu cơ sở.
Postgres cung cấp các phương thức truy cập btree, rtree và băm cho chỉ số. Phương pháp truy cập Btree là kèo bóng đá pháp triển khai của Lehman-yao Btrees có độ mâu thuẫn cao. Phương thức truy cập rtree thực hiện Rtrees tiêu chuẩn sử dụng thuật toán phân chia bậc hai của Guttman. Băm Phương pháp truy cập là kèo bóng đá pháp triển khai băm tuyến tính của Litwin. Chúng tôi đề cập đến các thuật toán chỉ được sử dụng để chỉ ra rằng tất cả những điều này Phương pháp truy cập hoàn toàn năng động và không cần phải được tối ưu hóa theo định kỳ (ví dụ như trường hợp, ví dụ, truy cập băm tĩnh các phương thức).
ThePostgresTrình tối ưu hóa truy vấn sẽ xem xét sử dụng chỉ mục Btree bất cứ khi nào kèo bóng đá pháp thuộc tính được lập chỉ mục là liên quan đến việc so sánh bằng cách sử dụng kèo bóng đá pháp trong số: <, <=, =, =,,
ThePostgresTrình tối ưu hóa truy vấn sẽ xem xét sử dụng chỉ mục rtree bất cứ khi nào kèo bóng đá pháp thuộc tính được lập chỉ mục là tham gia vào việc so sánh bằng cách sử dụng kèo bóng đá pháp trong số: <<, & <, &, , @, ~ =, &&
ThePostgresTrình tối ưu hóa truy vấn sẽ xem xét sử dụng chỉ mục băm bất cứ khi nào kèo bóng đá pháp thuộc tính được lập chỉ mục là tham gia vào kèo bóng đá pháp so sánh bằng cách sử dụng=toán tử.
Hiện tại, chỉ có phương thức truy cập Btree hỗ trợ nhiều cột chỉ mục. Tối đa 16 kèo bóng đá pháp có thể được chỉ định theo mặc định (giới hạn này có thể được thay đổi khi xây dựng postgres).
ANLớp toán tửcó thể được chỉ định cho mỗi cột của kèo bóng đá pháp chỉ mục. Lớp toán tử xác định Các toán tử sẽ được sử dụng bởi chỉ mục cho cột đó. Ví dụ, a Chỉ mục Btree trên số nguyên bốn byte sẽ sử dụngINT4_OPSlớp; Lớp toán tử này bao gồm Các chức năng so sánh cho số nguyên bốn byte. Trong thực tế lớp toán tử mặc định cho kiểu dữ liệu của trường thường là hợp lý. Điểm chính của việc có các lớp toán tử là đối với kèo bóng đá pháp số kiểu dữ liệu, có thể có nhiều hơn kèo bóng đá pháp thứ tự có ý nghĩa. Ví dụ: chúng tôi có thể muốn sắp xếp kèo bóng đá pháp kiểu dữ liệu số phức tạp bởi giá trị tuyệt đối hoặc bởi phần thực. Chúng tôi có thể làm điều này bằng cách xác định hai Các lớp toán tử cho kiểu dữ liệu và sau đó chọn lớp khi tạo kèo bóng đá pháp chỉ mục. Ngoài ra còn có kèo bóng đá pháp số lớp vận hành Với mục đích đặc biệt:
Các lớp toán tửBox_opsvàBigBox_opsCả hai chỉ số RTREE hỗ trợ TrênBoxKiểu dữ kèo bóng đá pháp. Sự khác biệt giữa họ làBigBox_opsCân tọa độ hộp xuống, để tránh các ngoại lệ điểm nổi từ Thực hiện phép nhân, bổ sung và trừ đi rất lớn tọa độ điểm nổi. Nếu trường mà của bạn hình chữ nhật nằm khoảng 20.000 đơn vị vuông hoặc lớn hơn, bạn nên sử dụngBigBox_ops.
TheINT24_OPSLớp toán tử là hữu ích để xây dựng các chỉ số trên dữ kèo bóng đá pháp INT2 và thực hiện So sánh với dữ kèo bóng đá pháp INT4 trong trình độ truy vấn. Tương tự,int42_opsChỉ số hỗ trợ trên dữ kèo bóng đá pháp INT4 được so sánh với dữ kèo bóng đá pháp INT2 trong truy vấn.
Truy vấn sau đây hiển thị tất cả các lớp toán tử được xác định:
Chọn Am.Amname là ACC_NAME, opc.opcname dưới dạng ops_name, opr.oprname dưới dạng ops_comp Từ pg_am am, pg_amop amop, PG_OPCLASS OPC, PG_OPERATOR OPR Where amop.amopid = am.oid và amop.amopclaid = opc.oid và amop.amopopr = opr.oid Đặt hàng theo ACC_NAME, OPS_NAME, OPS_COMP
sử dụngDrop IndexĐể loại bỏ kèo bóng đá pháp chỉ mục.
tác giả:được viết bởiHerouth MaozĐiều này ban đầu xuất hiện trên Danh sách gửi thư của người dùng vào năm 1998-03-02 để trả lời câu hỏi: "Sự khác biệt giữa kèo bóng đá pháp chính và duy nhất là gì hạn chế?".
Chủ đề: Re: [Câu hỏi] kèo bóng đá pháp chính | ĐỘC NHẤT Sự khác biệt giữa: kèo bóng đá pháp chính (trường, ...) và Độc đáo (lĩnh vực, ...) - Đây có phải là bí danh? - Nếu kèo bóng đá pháp chính đã là duy nhất, thì tại sao Có một loại kèo bóng đá pháp khác có tên là duy nhất?
kèo bóng đá pháp chính là (các) trường được sử dụng để xác định một hàng cụ thể. Ví dụ: các số an sinh xã hội xác định một người.
Một sự kết hợp đơn giản của các trường không liên quan gì đến xác định hàng. Nó chỉ đơn giản là một ràng buộc toàn vẹn. Vì Ví dụ, tôi có bộ sưu tập các liên kết. Mỗi bộ sưu tập được xác định bởi một số duy nhất, đó là kèo bóng đá pháp chính. kèo bóng đá pháp này được sử dụng trong quan hệ.
Tuy nhiên, ứng dụng của tôi yêu cầu mỗi bộ sưu tập cũng sẽ có kèo bóng đá pháp cái tên duy nhất. Tại sao? Để kèo bóng đá pháp người muốn sửa đổi kèo bóng đá pháp bộ sưu tập sẽ có thể xác định nó. Nó khó biết hơn nhiều, Nếu bạn có hai bộ sưu tập có tên là "Khoa học cuộc sống", The One được gắn thẻ 24433 là cái bạn cần và cái được gắn thẻ 29882 là không.
Vì vậy, người dùng chọn bộ sưu tập bằng tên của nó. Do đó chúng tôi Hãy chắc chắn, trong cơ sở dữ kèo bóng đá pháp, tên đó là duy nhất. Tuy nhiên, không Bảng khác trong cơ sở dữ kèo bóng đá pháp liên quan đến bảng bộ sưu tập của Tên bộ sưu tập. Điều đó sẽ rất không hiệu quả.
Hơn nữa, mặc dù là duy nhất, tên bộ sưu tập không Trên thực tế, xác định bộ sưu tập! Ví dụ, nếu ai đó quyết định Thay đổi tên của bộ sưu tập từ "Khoa học cuộc sống" thành "Sinh học", Nó vẫn sẽ là cùng kèo bóng đá pháp bộ sưu tập, chỉ với kèo bóng đá pháp tên khác. Miễn là tên là duy nhất, thì ổn thôi.
SO:
kèo bóng đá pháp chính:
được sử dụng để xác định hàng và liên quan đến nó.
là không thể (hoặc khó) để cập nhật.
Không nên cho phép nulls.
Trường duy nhất:
được sử dụng như kèo bóng đá pháp quyền truy cập thay thế cho hàng.
có thể cập nhật, miễn là chúng được giữ duy nhất.
NULL có thể chấp nhận được.
Đối với lý do tại sao không có kèo bóng đá pháp không duy nhất nào được xác định rõ ràng trong tiêu chuẩnSQLCú pháp? Vâng, bạn phải hiểu Các chỉ số đó phụ thuộc vào triển khai.SQLkhông xác định việc triển khai, chỉ đơn thuần là quan hệ giữa dữ kèo bóng đá pháp trong cơ sở dữ kèo bóng đá pháp.Postgreskhông cho phép các chỉ số không đơn độc, nhưng Các chỉ số được sử dụng để thực thiSQLPhím là luôn luôn duy nhất.
Do đó, bạn có thể truy vấn bảng bằng bất kỳ sự kết hợp nào của các cột của nó, Mặc dù thực tế là bạn không có chỉ mục trên các cột này. Các Các chỉ mục chỉ là kèo bóng đá pháp trợ giúp thực hiện mà mỗiRDBMScung cấp cho bạn, để gây ra thường được sử dụng Truy vấn để được thực hiện hiệu quả hơn. kèo bóng đá pháp sốRDBMScó thể cung cấp cho bạn các biện pháp bổ sung, chẳng hạn như Giữ một kèo bóng đá pháp được lưu trữ trong bộ nhớ chính. Họ sẽ có một đặc biệt Lệnh chẳng hạn
Tạo Memstore trên <Bảng Cột <Cols(Đây không phải là kèo bóng đá pháp lệnh hiện có, chỉ là kèo bóng đá pháp ví dụ).
Trên thực tế, khi bạn tạo kèo bóng đá pháp chính hoặc kết hợp duy nhất của các trường, không nơi nào trongSQLĐặc điểm kỹ thuật có nói rằng một chỉ mục được tạo ra, cũng như truy xuất dữ liệu bằng kèo bóng đá pháp sẽ hiệu quả hơn Quét tuần tự!
Vì vậy, nếu bạn muốn sử dụng kết hợp các trường không độc đáo như một kèo bóng đá pháp thứ cấp, bạn thực sự không cần phải chỉ định Bất cứ điều gì - chỉ cần bắt đầu lấy bằng sự kết hợp đó! Tuy nhiên, nếu Bạn muốn làm cho việc truy xuất hiệu quả, bạn sẽ phải dùng đến phương tiện của bạnRDBMSNhà cung cấp đưa ra bạn - có thể là kèo bóng đá pháp chỉ mục, lệnh memstore tưởng tượng của tôi hoặc kèo bóng đá pháp thông minhRDBMStạo ra các chỉ số mà không có kiến thức của bạn dựa trên thực tế là bạn đã gửi nó nhiều truy vấn dựa trên sự kết hợp cụ thể của các kèo bóng đá pháp ... (nó học hỏi từ kinh nghiệm).