Phần này cung cấp kèo tỷ số bóng đá euro hôm nay cái nhìn tổng quan vềbánh mì nướng(Kỹ thuật lưu trữ thuộc tính quá khổ).
PostgreSQLSử dụng kích thước trang cố định (thông thường là 8 kb) và không cho phép kèo tỷ số bóng đá euro hôm nay bộ đếm dài hơn nhiều trang. Do đó, không thể lưu trữ trực tiếp kèo tỷ số bóng đá euro hôm nay giá trị trường rất lớn. Để khắc phục giới hạn này, kèo tỷ số bóng đá euro hôm nay giá trị trường lớn được nén và/hoặc chia thành nhiều hàng vật lý. Điều này xảy ra trong suốt cho người dùng, chỉ có tác động nhỏ đến hầu hết kèo tỷ số bóng đá euro hôm nay mã phụ trợ. Kỹ thuật được gọi một cách trìu mến làbánh mì nướng(hoặcHồiĐiều tốt nhất kể từ bánh mì cắt látHồi). Thebánh mì nướngCơ sở hạ tầng cũng được sử dụng để cải thiện việc xử lý các giá trị dữ kèo tỷ số bóng đá euro hôm nay lớn trong bộ nhớ.
Chỉ các loại dữ kèo tỷ số bóng đá euro hôm nay nhất định hỗ trợbánh mì nướng- Không cần phải áp đặt chi phí cho các loại dữ kèo tỷ số bóng đá euro hôm nay không thể tạo ra các giá trị trường lớn. Để hỗ trợbánh mì nướng, Kiểu dữ kèo tỷ số bóng đá euro hôm nay phải có độ dài biến (Varlena) Đại diện, trong đó, thông thường, từ bốn byte đầu tiên của bất kỳ giá trị được lưu trữ nào chứa tổng chiều dài của giá trị tính bằng byte (bao gồm cả chính nó).bánh mì nướngKhông hạn chế phần còn lại của biểu diễn kiểu dữ kèo tỷ số bóng đá euro hôm nay. Các đại diện đặc biệt được gọi chung làbánh mì nướngED giá trịLàm việc bằng cách sửa đổi hoặc giải thích lại từ dài ban đầu này. Do đó, kèo tỷ số bóng đá euro hôm nay chức năng cấp C hỗ trợbánh mì nướng-Able Kiểu dữ kèo tỷ số bóng đá euro hôm nay phải cẩn thận về cách chúng xử lý có khả năng11861_11868ED Giá trị đầu vào: kèo tỷ số bóng đá euro hôm nay đầu vào có thể không thực sự bao gồm kèo tỷ số bóng đá euro hôm nay từ và nội dung dài bốn byte cho đến khi nó đượcDetoasted. (Điều này thường được thực hiện bằng cách gọipg_detoast_datum
Trước khi làm bất cứ điều gì có giá trị đầu vào, nhưng trong kèo tỷ số bóng đá euro hôm nay số trường hợp, cách tiếp cận hiệu quả hơn là có thể. Nhìn thấyPhần 38.13.1Để biết thêm chi tiết.)
bánh mì nướngchiếm đoạt hai bit của từ dài varlena (kèo tỷ số bóng đá euro hôm nay bit thứ tự cao trên kèo tỷ số bóng đá euro hôm nay máy lớn, kèo tỷ số bóng đá euro hôm nay bit thứ tự thấp trên kèo tỷ số bóng đá euro hôm nay máy Little-endian), do đó giới hạn kích thước logic của bất kỳ giá trị nào củabánh mì nướng-Able Kiểu dữ kèo tỷ số bóng đá euro hôm nay thành 1 GB (230- 1 byte). Khi cả hai bit bằng không, giá trị là kèo tỷ số bóng đá euro hôm nay un- bình thườngbánh mì nướngED giá trị của kiểu dữ kèo tỷ số bóng đá euro hôm nay và các bit còn lại của từ dài cho tổng kích thước dữ kèo tỷ số bóng đá euro hôm nay (bao gồm từ dài) trong byte. Khi bit bậc cao hoặc thứ tự thấp nhất được đặt, giá trị chỉ có tiêu đề một byte đơn thay vì tiêu đề bốn byte thông thường và các bit còn lại của byte đó cho tổng kích thước dữ kèo tỷ số bóng đá euro hôm nay (bao gồm cả byte chiều dài) trong byte. Sự thay thế này hỗ trợ lưu trữ các giá trị hiệu quả không gian ngắn hơn 127 byte, trong khi vẫn cho phép loại dữ kèo tỷ số bóng đá euro hôm nay tăng lên 1 GB khi cần. Các giá trị với các tiêu đề đơn lẻ không được căn chỉnh trên bất kỳ ranh giới cụ thể nào, trong khi các giá trị có tiêu đề bốn byte được căn chỉnh trên ít nhất một ranh giới bốn byte; Bỏ qua phần đệm căn chỉnh này cung cấp tiết kiệm không gian bổ sung có ý nghĩa so với các giá trị ngắn. Như một trường hợp đặc biệt, nếu các bit còn lại của tiêu đề đơn lẻ đều bằng không (không thể tự bao gồm độ dài), giá trị là một con trỏ đến dữ kèo tỷ số bóng đá euro hôm nay ngoại tuyến, với một số lựa chọn thay thế có thể như được mô tả dưới đây. Loại và kích thước của một như vậyTOAST PUNINTIONđược xác định bởi một mã được lưu trữ trong byte thứ hai của mốc. Cuối cùng, khi bit bậc cao hoặc thứ tự thấp nhất rõ ràng nhưng bit liền kề được đặt, nội dung của mốc đã được nén và phải được giải nén trước khi sử dụng. Trong trường hợp này, các bit còn lại của từ dài bốn byte cho tổng kích thước của mốc dữ kèo tỷ số bóng đá euro hôm nay được nén, không phải dữ kèo tỷ số bóng đá euro hôm nay gốc. Lưu ý rằng nén cũng có thể cho dữ kèo tỷ số bóng đá euro hôm nay ngoại tuyến nhưng tiêu đề Varlena không cho biết kèo tỷ số bóng đá euro hôm nay nó có xảy ra hay không-nội dung củabánh mì nướngCon trỏ nói rằng, thay vào đó.
Kỹ thuật nén được sử dụng cho dữ kèo tỷ số bóng đá euro hôm nay nén nội tuyến hoặc ngoại tuyến có thể được chọn cho mỗi cột bằng cách đặt14585_14598
Tùy chọn cột trongTạo bảng
hoặcBảng thay đổi
. Mặc định cho kèo tỷ số bóng đá euro hôm nay cột không có cài đặt rõ ràng là tham khảo ý kiếnDefault_toast_compressiontham số tại thời điểm dữ kèo tỷ số bóng đá euro hôm nay được chèn.
Như đã đề cập, có nhiều loạibánh mì nướngDữ kèo tỷ số bóng đá euro hôm nay con trỏ. Loại lâu đời nhất và phổ biến nhất là một con trỏ đến dữ kèo tỷ số bóng đá euro hôm nay ngoại tuyến được lưu trữ trong mộtbánh mì nướng15172_1518015183_15255bánh mì nướngBản thân dữ kèo tỷ số bóng đá euro hôm nay con trỏ. Những cái nàytrên đĩaDữ kèo tỷ số bóng đá euro hôm nay con trỏ được tạo bởibánh mì nướngMã quản lý (trongTruy cập/Common/Toast_Internals.C
) Khi kèo tỷ số bóng đá euro hôm nay tuple được lưu trữ trên đĩa quá lớn để được lưu trữ AS-IS. Thông tin chi tiết khác xuất hiện trongPhần 73.2.1. Ngoài ra, Abánh mì nướngDatum con trỏ có thể chứa một con trỏ đến dữ kèo tỷ số bóng đá euro hôm nay ngoại tuyến xuất hiện ở nơi khác trong bộ nhớ. Các dữ kèo tỷ số bóng đá euro hôm nay như vậy nhất thiết phải tồn tại trong thời gian ngắn và sẽ không bao giờ xuất hiện trên đĩa, nhưng chúng rất hữu ích để tránh sao chép và xử lý dự phòng các giá trị dữ kèo tỷ số bóng đá euro hôm nay lớn. Thông tin chi tiết khác xuất hiện trongPhần 73.2.2.
Nếu bất kỳ cột nào của bảng làtỷ lệ kèo tỷ số bóng đá euro hôm nay bóng-Able, bảng sẽ có liên quanbánh mì nướngBảng, có OID được lưu trữ trong bảngPG_Class
.reltoastrelid
mục nhập. Trên đĩabánh mì nướngED giá trị được giữ trongbánh mì nướngBảng, như được mô tả chi tiết hơn bên dưới.
kèo tỷ số bóng đá euro hôm nay giá trị ngoại tuyến được chia (sau khi nén nếu được sử dụng) thành kèo tỷ số bóng đá euro hôm nay khối nhiều nhấttoast_max_chunk_size
Byte (theo mặc định, giá trị này được chọn sao cho bốn hàng chunk sẽ phù hợp trên kèo tỷ số bóng đá euro hôm nay trang, làm cho nó khoảng 2000 byte). Mỗi khối được lưu trữ dưới dạng kèo tỷ số bóng đá euro hôm nay hàng riêng biệt trongbánh mì nướngBảng thuộc về bảng sở hữu. Mọibánh mì nướngBảng có kèo tỷ số bóng đá euro hôm nay cộtChunk_id
(kèo tỷ số bóng đá euro hôm nay oid xác định cụ thểbánh mì nướngED giá trị),Chunk_seq
(số trình tự cho phần trong giá trị của nó) vàChunk_data
(dữ kèo tỷ số bóng đá euro hôm nay thực tế của khối). Một chỉ mục duy nhất trênChunk_id
vàChunk_seq
Cung cấp nhanh kèo tỷ số bóng đá euro hôm nay giá trị. Datum con trỏ đại diện cho một bộ phận ngoài đườngbánh mì nướngED do đó giá trị cần lưu trữ oid củabánh mì nướngBảng để xem và oid của giá trị cụ thể (Chunk_id
). Để thuận tiện, các dữ kèo tỷ số bóng đá euro hôm nay con trỏ cũng lưu trữ kích thước mốc dữ kèo tỷ số bóng đá euro hôm nay logic (độ dài dữ kèo tỷ số bóng đá euro hôm nay không nén ban đầu), kích thước lưu trữ vật lý (khác nhau nếu nén được áp dụng) và phương pháp nén được sử dụng, nếu có. Cho phép các byte tiêu đề varlena, tổng kích thước của một đĩa trênbánh mì nướngDatum con trỏ là 18 byte bất kể kích thước thực tế của giá trị được biểu thị.
Thebánh mì nướngMã quản lý chỉ được kích hoạt khi giá trị hàng được lưu trữ trong bảng rộng hơntoast_tuple_threshold
byte (thường là 2 kb). Thebánh mì nướng18777_18872toast_tuple_target
Byte (cũng thường là 2 kb, có thể điều chỉnh) hoặc không có thêm lợi nhuận nào. Trong một hoạt động cập nhật, kèo tỷ số bóng đá euro hôm nay giá trị của kèo tỷ số bóng đá euro hôm nay trường không thay đổi thường được bảo tồn AS-IS; Vì vậy, một bản cập nhật của một hàng với kèo tỷ số bóng đá euro hôm nay giá trị ngoại tuyến không cóbánh mì nướngChi phí nếu không có giá trị nào thay đổi.
Thebánh mì nướngMã quản lý nhận ra bốn chiến lược khác nhau để lưu trữbánh mì nướng-Able Cột trên đĩa:
trơn
Ngăn chặn lưu trữ nén hoặc ngoài dòng. Đây là chiến lược duy nhất có thể cho kèo tỷ số bóng đá euro hôm nay cột không phảibánh mì nướng-Able Kiểu dữ kèo tỷ số bóng đá euro hôm nay.
mở rộng
Cho phép lưu trữ cả nén và ngoài dòng. Đây là mặc định cho hầu hếtbánh mì nướng-Các loại dữ kèo tỷ số bóng đá euro hôm nay có thể. Nén sẽ được thử trước, sau đó lưu trữ ngoài đường nếu hàng vẫn còn quá lớn.
bên ngoài
Cho phép lưu trữ ngoại tuyến nhưng không nén. Sử dụngbên ngoài
Sẽ thực hiện kèo tỷ số bóng đá euro hôm nay hoạt động của Subring trên WideText
vàbytea
20362_20547
chính
Cho phép nén nhưng không lưu trữ ngoài đường. .
mỗi20941_2094820956_21096Bảng thay đổi ... Đặt lưu trữ
.
toast_tuple_target
Có thể điều chỉnh cho mỗi bảng bằng cách sử dụngBảng thay đổi ... Đặt (toast_tuple_target = n)
Sơ đồ này có một số lợi thế so với cách tiếp cận đơn giản hơn như cho phép kèo tỷ số bóng đá euro hôm nay giá trị hàng theo kèo tỷ số bóng đá euro hôm nay trang. Giả sử rằng kèo tỷ số bóng đá euro hôm nay truy vấn thường có đủ điều kiện bằng cách so sánh với kèo tỷ số bóng đá euro hôm nay giá trị chính tương đối nhỏ, hầu hết công việc của người thực thi sẽ được thực hiện bằng cách sử dụng mục nhập hàng chính. kèo tỷ số bóng đá euro hôm nay giá trị lớn củabánh mì nướngCác thuộc tính ED sẽ chỉ được rút ra (nếu được chọn ở tất cả) tại thời điểm bộ kết quả được gửi đến máy khách. Do đó, bảng chính nhỏ hơn nhiều và nhiều hàng của nó phù hợp với bộ đệm bộ đệm được chia sẻ hơn là trường hợp mà không có bất kỳ lưu trữ ngoại tuyến nào. Các bộ sắp xếp cũng thu hẹp, và các loại thường sẽ được thực hiện hoàn toàn trong bộ nhớ. Một thử nghiệm nhỏ cho thấy một bảng chứa các trang HTML điển hình và URL của chúng được lưu trữ trong khoảng một nửa kích thước dữ kèo tỷ số bóng đá euro hôm nay thô bao gồmbánh mì nướngBảng và bảng chính chỉ chứa khoảng 10% toàn bộ dữ kèo tỷ số bóng đá euro hôm nay (URL và một số trang HTML nhỏ). Không có sự khác biệt về thời gian chạy so với un-bánh mì nướngBảng so sánh ED, trong đó tất cả kèo tỷ số bóng đá euro hôm nay trang HTML được cắt xuống 7 kb để phù hợp.
22883_22890Con trỏ có thể trỏ đến dữ kèo tỷ số bóng đá euro hôm nay không có trên đĩa, nhưng ở nơi khác trong bộ nhớ của quy trình máy chủ hiện tại. Những gợi ý như vậy rõ ràng không thể tồn tại lâu, nhưng dù sao chúng cũng hữu ích. Hiện tại có hai trường hợp phụ: Con trỏ đếngián tiếpDữ kèo tỷ số bóng đá euro hôm nay và con trỏ đếnMở rộngDữ kèo tỷ số bóng đá euro hôm nay.
gián tiếpbánh mì nướngCon trỏ chỉ đơn giản là chỉ vào một giá trị varlena không xuống cấp được lưu trữ ở đâu đó trong bộ nhớ. Trường hợp này ban đầu được tạo ra chỉ là một bằng chứng về khái niệm, nhưng hiện tại nó được sử dụng trong quá trình giải mã logic để tránh có thể phải tạo các bộ dữ kèo tỷ số bóng đá euro hôm nay vật lý vượt quá 1 GB (khi kéo tất cả các giá trị trường ngoại tuyến vào tuple có thể làm). Trường hợp được sử dụng hạn chế vì người tạo dữ kèo tỷ số bóng đá euro hôm nay con trỏ hoàn toàn chịu trách nhiệm rằng dữ kèo tỷ số bóng đá euro hôm nay được tham chiếu tồn tại miễn là con trỏ có thể tồn tại và không có cơ sở hạ tầng nào để giúp điều này.
Mở rộngbánh mì nướngCon trỏ rất hữu ích cho các loại dữ kèo tỷ số bóng đá euro hôm nay phức tạp có biểu diễn trên đĩa không đặc biệt phù hợp cho mục đích tính toán. Ví dụ, biểu diễn varlena tiêu chuẩn của APostgreSQLMảng bao gồm thông tin về chiều, bitmap nulls Nếu có bất kỳ phần tử null nào, sau đó kèo tỷ số bóng đá euro hôm nay giá trị của tất cả kèo tỷ số bóng đá euro hôm nay phần tử theo thứ tự. Khi chính loại phần tử có độ dài thay đổi, cách duy nhất để tìmn
24375_24582HồiMở rộngHồihoặcgiải cấu trúcHồiĐại diện trong đó tất cả kèo tỷ số bóng đá euro hôm nay vị trí bắt đầu phần tử đã được xác định. Thebánh mì nướng24843_24999bánh mì nướngCon trỏ trỏ đến một đại diện mở rộng ở đâu đó trong bộ nhớ. Các chi tiết của biểu diễn được mở rộng này tùy thuộc vào kiểu dữ kèo tỷ số bóng đá euro hôm nay, mặc dù nó phải có tiêu đề tiêu chuẩn và đáp ứng các yêu cầu API khác được đưa ra trongsrc/bao gồm/elils/expandeddatum.h
25324_25496pg_detoast_datum
Đối với đầu vào của họ, sẽ tự động nhận đại diện varlena truyền thống; Vì vậy, hỗ trợ cho kèo tỷ số bóng đá euro hôm nay biểu diễn mở rộng có thể được giới thiệu tăng dần, kèo tỷ số bóng đá euro hôm nay hàm tại kèo tỷ số bóng đá euro hôm nay thời điểm.
bánh mì nướngCon trỏ để kèo tỷ số bóng đá euro hôm nay giá trị mở rộng được chia nhỏ thànhRead-WritevàChỉ đọcCon trỏ. Biểu diễn chỉ ra là giống nhau, nhưng một hàm nhận con trỏ đọc-viết được phép sửa đổi giá trị được tham chiếu tại chỗ, trong khi một hàm nhận được một con trỏ chỉ đọc không được; Trước tiên, nó phải tạo một bản sao nếu nó muốn tạo một phiên bản sửa đổi của giá trị. Sự khác biệt này và một số quy ước liên quan cho phép tránh sao chép không cần thiết kèo tỷ số bóng đá euro hôm nay giá trị mở rộng trong quá trình thực thi truy vấn.
Đối với tất cả kèo tỷ số bóng đá euro hôm nay loại trong bộ nhớbánh mì nướngCon trỏ,bánh mì nướngMã quản lý đảm bảo rằng không có dữ kèo tỷ số bóng đá euro hôm nay con trỏ nào như vậy có thể vô tình được lưu trữ trên đĩa. Trong bộ nhớbánh mì nướng26624_26752bánh mì nướngCon trỏ, nếu phần chứa chứa sẽ quá lớn.
Nếu bạn thấy bất cứ điều gì trong tài kèo tỷ số bóng đá euro hôm nay không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài kèo tỷ số bóng đá euro hôm nay.