Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
Tài kèo bóng đá việt nam này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiê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 thay thế.

5.9. kèo bóng đá việt nam

PostgreSQLHỗ trợ cơ bản kèo bóng đá việt nam bảng. Phần này mô tả lý do tại sao và làm thế nào để Triển khai kèo bóng đá việt nam như một phần của thiết kế cơ sở dữ liệu của bạn.

5.9.1. Tổng quan

kèo bóng đá việt nam đề cập đến việc phân tách những gì một cách logic một cách hợp lý Bảng thành các mảnh vật lý nhỏ hơn. kèo bóng đá việt nam có thể cung cấp Một số lợi ích:

  • Hiệu suất truy vấn có thể được cải thiện đáng kể trong một số tình huống, đặc biệt là khi hầu hết các tình huống các hàng được truy cập của bảng nằm trong một kèo bóng đá việt nam hoặc một số lượng nhỏ các kèo bóng đá việt nam. Các kèo bóng đá việt nam thay thế cho các cột hàng đầu của các chỉ mục, giảm kích thước chỉ số và làm cho nhiều khả năng các phần được sử dụng nhiều của chỉ mục phù hợp với bộ nhớ.

  • 10845_11120

  • Tải và xóa số lượng lớn có thể được thực hiện bằng cách thêm hoặc thêm hoặc loại bỏ các kèo bóng đá việt nam, nếu yêu cầu đó được lên kế hoạch thiết kế kèo bóng đá việt nam.Thay đổi BÀNnhanh hơn nhiều so với hoạt động hàng loạt. Nó cũng hoàn toàn tránhNút hútChi phí gây ra bởi một số lượng lớnXóa.

  • Dữ kèo bóng đá việt nam hiếm khi được sử dụng có thể được di chuyển sang rẻ hơn và chậm hơn phương tiện lưu trữ.

Những lợi ích thường sẽ chỉ có giá trị khi một bảng nếu không thì sẽ rất lớn. Điểm chính xác mà một bảng sẽ được hưởng lợi từ việc kèo bóng đá việt nam phụ thuộc vào ứng dụng, mặc dù một quy tắc ngón tay cái là kích thước của bảng nên vượt quá bộ nhớ vật lý của máy chủ cơ sở dữ liệu.

Hiện tại,PostgreSQLHỗ trợ kèo bóng đá việt nam qua kế thừa bảng. Mỗi kèo bóng đá việt nam Phải được tạo như một bảng con của một bảng cha mẹ đơn lẻ. Các Bản thân bảng cha mẹ thường trống; nó tồn tại chỉ để Đại diện cho toàn bộ tập dữ liệu. Bạn nên quen thuộc với kế thừa (xemPhần 5.812385_12434

Các hình thức kèo bóng đá việt nam sau đây có thể được thực hiện trongPostgreSQL:

kèo bóng đá việt nam phạm vi

Bảng được kèo bóng đá việt nam thành"Phạm vi"12738_13011

Danh sách kèo bóng đá việt nam

Bảng được kèo bóng đá việt nam bằng cách liệt kê rõ ràng Các giá trị khóa xuất hiện trong mỗi kèo bóng đá việt nam.

5.9.2. Thực hiện kèo bóng đá việt nam

Để thiết lập bảng được kèo bóng đá việt nam, làm như sau:

  1. Tạo"Master"Bảng, từ đó tất cả các kèo bóng đá việt nam sẽ kế thừa.

    Bảng này sẽ không chứa dữ liệu. Không xác định bất kỳ séc nào những ràng buộc trên bảng này, trừ khi bạn có ý định áp dụng như nhau cho tất cả các kèo bóng đá việt nam. Không có điểm nào trong Xác định bất kỳ chỉ mục hoặc các ràng buộc duy nhất trên nó, hoặc.

  2. Tạo một số"Child"Bảng mà mỗi kế thừa từ bảng chính. Thông thường, những điều này Các bảng sẽ không thêm bất kỳ cột nào vào tập hợp được kế thừa từ Master.

    Chúng tôi sẽ gọi các bảng con là kèo bóng đá việt nam Họ theo mọi cách bình thườngPostgreSQLBảng.

  3. Thêm các ràng buộc bảng vào các bảng kèo bóng đá việt nam để xác định các giá trị khóa được phép trong mỗi kèo bóng đá việt nam.

    Ví dụ điển hình sẽ là:

    Kiểm tra (x = 1)
    Kiểm tra (Quận ở ('Oxfordshire', 'Buckinghamshire', 'Warwickshire'))))
    Kiểm tra (OutletId = 100 và Outletid <200)

    Đảm bảo rằng các ràng buộc đảm bảo rằng không có sự chồng chéo giữa các giá trị khóa được phép trong các khác nhau kèo bóng đá việt nam. Một sai lầm phổ biến là thiết lập các ràng buộc phạm vi Như thế này:

    Kiểm tra (Outletid từ 100 đến 200)
    Kiểm tra (Outletid từ 200 đến 300)

    Điều này là sai vì không rõ kèo bóng đá việt nam nào Giá trị khóa 200 thuộc về.

    Lưu ý rằng không có sự khác biệt về cú pháp giữa phạm vi và danh sách kèo bóng đá việt nam; Những thuật ngữ đó được mô tả chỉ một.

  4. Đối với mỗi kèo bóng đá việt nam, hãy tạo một chỉ mục trên khóa (Các) cột, cũng như bất kỳ chỉ mục nào khác mà bạn có thể muốn. (Chỉ số chính không hoàn toàn cần thiết, nhưng trong hầu hết kịch bản nó là hữu ích. Nếu bạn dự định các giá trị chính sẽ độc đáo thì bạn nên luôn luôn tạo ra một ràng buộc khóa chính cho từng kèo bóng đá việt nam.)

  5. Tùy chọn, xác định quy tắc hoặc kích hoạt để chuyển hướng sửa đổi bảng chính để thích hợp kèo bóng đá việt nam.

  6. Đảm bảo rằngurdaint_exclusionTham số cấu hình được bật trongPostgreSql.conf. Không có điều này, các truy vấn sẽ không được tối ưu hóa như mong muốn.

Ví dụ: giả sử chúng ta đang xây dựng cơ sở dữ kèo bóng đá việt nam cho một Công ty kem lớn. Công ty đo nhiệt độ cực đại Mỗi ngày cũng như doanh số bán kem ở mỗi khu vực. Về mặt khái niệm, chúng tôi muốn một bảng như thế này:

Tạo phép đo bảng (
    city_id int not null,
    Ngày đăng nhập không phải null,
    PeakTemp Int,
    đơn vị int
);

Chúng tôi biết rằng hầu hết các truy vấn sẽ truy cập chỉ vào tuần trước, Dữ kèo bóng đá việt nam của tháng hoặc quý, vì việc sử dụng chính bảng này Sẽ được chuẩn bị báo cáo trực tuyến cho quản lý. Để giảm lượng dữ kèo bóng đá việt nam cũ cần được lưu trữ, chúng tôi quyết định chỉ Giữ dữ kèo bóng đá việt nam trị giá 3 năm gần đây nhất. Vào đầu Mỗi tháng chúng tôi sẽ xóa dữ kèo bóng đá việt nam tháng cũ nhất.

17026_17234

  1. Bảng chính làĐo lườngbảng, được khai báo chính xác là bên trên.

  2. 17450_17503

    Tạo bảng đo_Y2004M02 () kế thừa (Đo lường);
    Tạo bảng đo_Y2004M03 () kế thừa (đo lường);
    ...
    Tạo bảng đo_Y2005M11 () kế thừa (đo lường);
    Tạo bảng đo_Y2005M12 () kế thừa (đo lường);
    Tạo bảng đo_Y2006M01 () kế thừa (đo lường);

    Mỗi kèo bóng đá việt nam là các bảng hoàn chỉnh đúng, nhưng họ thừa hưởng định nghĩa của họ từĐo lườngBảng.

    Điều này giải quyết một trong những vấn đề của chúng tôi: xóa dữ kèo bóng đá việt nam cũ. Mỗi tháng, tất cả những gì chúng ta sẽ cần làm là thực hiện mộtBẢNG DROPtrên bàn trẻ nhất và Tạo bảng con mới cho dữ kèo bóng đá việt nam của tháng mới.

  3. Chúng ta phải thêm các ràng buộc bảng không chồng chéo, do đó Tập lệnh tạo bảng của chúng tôi trở thành:

    Tạo bảng đo_Y2004M02 (
        Kiểm tra (Logdate = Date '2004-02-01' và Logdate <Date '2004-03-01'))
    ) Kế thừa (đo lường);
    Tạo bảng đo_Y2004M03 (
        Kiểm tra (Logdate = Date '2004-03-01' và Logdate <Date '2004-04-01'))
    ) Kế thừa (đo lường);
    ...
    Tạo bảng đo_Y2005M11 (
        Kiểm tra (logdate = ngày '2005-11-01' và logdate <ngày '2005-12-01'))
    ) Kế thừa (đo lường);
    Tạo bảng đo_Y2005M12 (
        Kiểm tra (logdate = ngày '2005-12-01' và logdate <ngày '2006-01-01'))
    ) Kế thừa (đo lường);
    Tạo bảng đo_Y2006M01 (
        Kiểm tra (Logdate = Date '2006-01-01' và Logdate <Date '2006-02-01'))
    ) Kế thừa (đo lường);
  4. Có lẽ chúng ta cũng cần các chỉ mục trên các cột chính:

    19331_19723

    Chúng tôi chọn không thêm các chỉ mục vào thời điểm này.

  5. Nếu dữ liệu sẽ chỉ được thêm vào kèo bóng đá việt nam mới nhất, chúng tôi Có thể thiết lập một quy tắc rất đơn giản để chèn dữ liệu. Chúng ta phải xác định lại điều này mỗi tháng để nó luôn chỉ vào kèo bóng đá việt nam hiện tại.

    Tạo hoặc thay thế Quy tắc Đo lường_Cien_Partition AS
    Khi chèn vào đo lường
    Làm thay thế
        Chèn vào các giá trị đo_Y2006M01 (new.city_id,
                                                  Mới.logdate,
                                                  MỚI.PEAKTEMP,
                                                  New.unitsales);

    Chúng tôi có thể muốn chèn dữ liệu và có máy chủ tự động xác định vị trí kèo bóng đá việt nam mà hàng nên được thêm vào. Chúng tôi có thể làm điều này với một bộ phức tạp hơn của các quy tắc như được hiển thị bên dưới.

    Tạo Quy tắc Đo_insert_y2004m02 AS
    Trên chèn để đo lường ở đâu
        .
    Làm thay thế
        Chèn vào các giá trị đo_Y2004M02 (new.city_id,
                                                  Mới.logdate,
                                                  MỚI.PEAKTEMP,
                                                  New.unitsales);
    ...
    Tạo quy tắc đo lường_insert_y2005m12 AS
    Trên chèn để đo lường ở đâu
        .
    Làm thay thế
        Chèn vào các giá trị đo_Y2005M12 (new.city_id,
                                                  Mới.logdate,
                                                  MỚI.PEAKTEMP,
                                                  New.unitsales);
    Tạo quy tắc đo lường_insert_y2006m01 như
    Trên chèn để đo lường ở đâu
        .
    Làm thay thế
        Chèn vào các giá trị đo_Y2006M01 (new.city_id,
                                                  Mới.logdate,
                                                  MỚI.PEAKTEMP,
                                                  New.unitsales);

    Lưu ý rằngWHEREmệnh đề trong Mỗi quy tắc khớp chính xác vớiKiểm traràng buộc cho kèo bóng đá việt nam của nó.

22106_22360

kèo bóng đá việt nam cũng có thể được sắp xếp bằng cách sử dụngLiên minh tất cảXem:

Tạo phép đo xem là
          Chọn * Từ Đo lường_Y2004M02
Liên minh tất cả chọn * từ số đo_Y2004M03
...
Liên minh tất cả chọn * từ số đo_Y2005M11
Liên minh tất cả chọn * từ số đo_Y2005M12
Liên minh tất cả Chọn * từ Đo lường_Y2006M01;

Tuy nhiên, sự cần thiết phải tạo lại chế độ xem thêm một bước bổ sung để Thêm và bỏ các kèo bóng đá việt nam riêng lẻ của tập dữ liệu.

5.9.3. Quản lý kèo bóng đá việt nam

23097_23590

Tùy chọn đơn giản nhất để xóa dữ liệu cũ chỉ đơn giản là giảm kèo bóng đá việt nam không còn cần thiết nữa:

23744_23780

Điều này có thể nhanh chóng xóa hàng triệu bản ghi vì nó không cần phải xóa riêng mọi bản ghi.

Một tùy chọn khác thường thích hơn là xóa kèo bóng đá việt nam từ bảng được kèo bóng đá việt nam nhưng giữ quyền truy cập vào nó như một bảng theo đúng nghĩa của nó:

thay đổi bảng đo_Y2003M02 Không đo lường kế thừa;

Điều này cho phép các hoạt động tiếp theo được thực hiện trên dữ kèo bóng đá việt nam trước khi nó bị bỏ. Ví dụ: đây thường là một thời gian hữu ích Để sao lưu dữ kèo bóng đá việt nam bằngCopy, pg_dumphoặc các công cụ tương tự. Nó cũng có thể là thời điểm hữu ích để tổng hợp dữ kèo bóng đá việt nam thành nhỏ hơn định dạng, thực hiện các thao tác dữ kèo bóng đá việt nam khác hoặc chạy báo cáo.

Tương tự chúng ta có thể thêm một kèo bóng đá việt nam mới để xử lý dữ liệu mới. Chúng tôi có thể tạo một kèo bóng đá việt nam trống trong bảng được kèo bóng đá việt nam giống như Các kèo bóng đá việt nam ban đầu đã được tạo ở trên.

Tạo bảng đo_Y2006M02 (
    Kiểm tra (Logdate = Date '2006-02-01' và Logdate <Date '2006-03-01'))
) Kế thừa (đo lường);

Thay thế, đôi khi thuận tiện hơn để tạo bảng mới bên ngoài cấu trúc kèo bóng đá việt nam và biến nó thành một kèo bóng đá việt nam thích hợp sau. Điều này cho phép dữ liệu được tải, đã kiểm tra và biến đổi trước khi nó xuất hiện trong Bảng được kèo bóng đá việt nam.

Tạo bảng đo_Y2006M02
  (Giống như đo lường bao gồm các mặc định bao gồm các ràng buộc);
Thay đổi bảng đo_Y2006M02 Thêm ràng buộc Y2006M02
   Kiểm tra (logdate = ngày '2006-02-01' và logdate <ngày '2006-03-01');
\ Sao chép Đo_Y2006M02 từ 'Đo lường_Y2006M02'
- Có thể một số công việc chuẩn bị dữ kèo bóng đá việt nam khác
Thay đổi bảng đo_Y2006M02 Đo lường kế thừa;

5.9.4. kèo bóng đá việt nam và Loại trừ ràng buộc

Loại trừ ràng buộclà một truy vấn kỹ thuật tối ưu hóa giúp cải thiện hiệu suất cho Các bảng kèo bóng đá việt nam được xác định trong thời trang được mô tả ở trên. BẰNG Một ví dụ:

Đặt ràng buộc_exclusion = ON;
Chọn Đếm (*) từ Đo lường trong đó LogDate = Date '2006-01-01';

Không loại trừ ràng buộc, truy vấn trên sẽ quét Mỗi kèo bóng đá việt nam củaĐo lườngBảng. Với sự loại trừ ràng buộc được bật, người lập kế hoạch sẽ kiểm tra các ràng buộc của mỗi kèo bóng đá việt nam và cố gắng chứng minh rằng kèo bóng đá việt nam không cần phải được quét vì nó không thể chứa bất kỳ hàng nào gặp Truy vấn củaWHEREmệnh đề. Khi người lập kế hoạch có thể chứng minh điều này, nó không bao gồm kèo bóng đá việt nam khỏi truy vấn kế hoạch.

Bạn có thể sử dụngGiải thíchLệnh đến Hiển thị sự khác biệt giữa một kế hoạch vớiurdaint_exclusiontrên và một kế hoạch với nó. Một gói mặc định điển hình cho loại thiết lập bảng này là:

27042_28175

Một số hoặc tất cả các kèo bóng đá việt nam có thể sử dụng quét chỉ mục thay thế của các lần quét tuần tự bàn đầy đủ, nhưng vấn đề ở đây là Không cần phải quét các kèo bóng đá việt nam cũ hơn để trả lời Truy vấn này. Khi chúng tôi kích hoạt loại trừ ràng buộc, chúng tôi sẽ nhận được Kế hoạch giảm đáng kể sẽ cung cấp tương tự trả lời:

28546_29202

Lưu ý rằng loại trừ ràng buộc chỉ được điều khiển bởiKiểm traCác ràng buộc, không phải bởi sự hiện diện của chỉ mục. Do đó không cần thiết phải xác định các chỉ mục trên Các cột chính. Liệu một chỉ mục có cần được tạo cho một kèo bóng đá việt nam phụ thuộc vào việc bạn có mong đợi các truy vấn quét kèo bóng đá việt nam thường sẽ quét một phần lớn của kèo bóng đá việt nam Hoặc chỉ là một phần nhỏ. Một chỉ mục sẽ hữu ích trong phần sau trường hợp nhưng không phải trước đây.

5.9.5. Hãy cẩn thận

Các cảnh báo sau đây áp dụng cho các bảng được kèo bóng đá việt nam:

  • Hiện tại không có cách nào để xác minh rằng tất cảKiểm traCác ràng buộc là lẫn nhau loại trừ. Chăm sóc được yêu cầu bởi Trình thiết kế cơ sở dữ kèo bóng đá việt nam.

  • Hiện tại không có cách nào đơn giản để chỉ định các hàng đó Không được chèn vào bảng chính. MỘTKiểm tra (Sai)30317_30488Khi chèn30520_30759

Các cảnh báo sau đây áp dụng cho loại trừ ràng buộc:

  • Loại trừ ràng buộc chỉ hoạt động khi truy vấnWHEREmệnh đề chứa hằng số. MỘT Truy vấn được tham số hóa sẽ không được tối ưu hóa, vì Người lập kế hoạch không thể biết kèo bóng đá việt nam giá trị tham số nào có thể chọn thời gian chạy. Vì lý do tương tự,"ổn định"Các chức năng nhưcurrent_datePhải tránh.

  • Tránh so sánh loại dữ kèo bóng đá việt nam chéo trongKiểm traràng buộc, như người lập kế hoạch sẽ Hiện không thể chứng minh các điều kiện như vậy sai. Ví dụ, Ràng buộc sau sẽ hoạt động nếuxSố nguyênCột, nhưng không nếuxlà ABigint:

    Kiểm tra (x = 1)

    cho ABigintCột chúng ta phải sử dụng ràng buộc như:

    Kiểm tra (x = 1 :: Bigint)

    Vấn đề không giới hạn ởBigintKiểu dữ kèo bóng đá việt nam - nó có thể xảy ra bất cứ khi nào Kiểu dữ kèo bóng đá việt nam mặc định của hằng số không khớp với dữ kèo bóng đá việt nam loại cột mà nó đang được so sánh. So sánh loại dữ kèo bóng đá việt nam chéo trong các truy vấn được cung cấp là Thường thì ok, chỉ không có trongKiểm traĐiều kiện.

  • Tất cả các ràng buộc trên tất cả các kèo bóng đá việt nam của bảng chính được xem xét để loại trừ ràng buộc, vì vậy số lượng lớn kèo bóng đá việt nam có khả năng tăng thời gian lập kế hoạch truy vấn Đáng chú ý.

  • Đừng quên rằng bạn vẫn cần chạykèo bóng đá việt nam tíchTrên mỗi kèo bóng đá việt nam riêng lẻ. MỘT lệnh như

    kèo bóng đá việt nam tích đo lường;

    Sẽ chỉ xử lý bảng chính.