成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解PostgreSQL的TOAST大字段存儲方式

數據庫 其他數據庫 PostgreSQL
今天我們要介紹的是PostgreSQL的TOAST大字段存儲方式,合理的運用這種方法,可以很顯著的提升查詢速度。

PostgreSQL為“大字段“的物理存儲提供了TOAST功能,通過合適的配置策略能夠減少IO次數和掃描塊數,進而提升查詢速度。

TOAST:The Oversized-Attribute Storage Technique

特點:

PostgreSQL采用固定頁面大小(通常是8Kb,不象oracle在運行期間有多種選擇),元組不能跨越多個頁面,無法實現“大字段值“的直接存儲。TOAST提供了解決方法,允許大的字段值被壓縮或分裂為多個物理行。

PostgreSQL只為部分數據類型支提供TOAST支持,為支持TOAST,數據類型必須是變長(varlena)的類型。前32位存儲著以字節記的數值總長度(包括長度本身)。

TOAST采用最高的兩個二進制位用于標識壓縮與行外存儲,因此“大字段“的邏輯長度被限制在了1GB2^(32-2)-1)。

兩個位都是零,表示數值未經過TOAST方式的數值;

第32位為1,表示該數值被壓縮,使用前必須先解壓縮;

第31位為1,表示該數值采用行外存儲,此時只是存儲著一個指針,該指針指向其他的地方。另外30個位表示數據的實際尺寸,而不是解壓縮或者從線外數據抓過來之后的邏輯尺寸。

行外數據被分裂成(如果壓縮過,以壓縮后為參考)最多TOAST_MAX_CHUNK_SIZE(這個數值略小于BLCKSZ/4,或者缺省 2K字節)字節的塊,每個塊都作為獨立的行在TOAST表里為所屬表存儲。每個TOAST表都有字段chunk_id,chunk_seq和chunk_data。在chunk_id和chunk_seq上有一個唯一索引,提供對數值的快速檢索。

只有表中存儲超過BLCKSZ/4字節(通常是2Kb)的行才會觸發,對字段進行壓縮和行外存儲,直到小于BLCKSZ/4字節,或者無法得到更好的結果的時候才停止。UPDATE操作過程中,未改變的字段的數值通常原樣保存;因此UPDATE行外存儲的記錄時,如果行外數據值沒有變化,將不會帶來TOAST開銷存在。

TOAST代碼識別四種不同的存儲可TOAST字段的策略:

PLAIN避免壓縮或者行外存儲。只對那些非TOAST數據類型才有效。

EXTENDED允許壓縮和行外存儲。大多數TOAST數據類型的缺省值。首先進行壓縮,如果行仍然太大,則進行行外存儲。

EXTERNAL允許行外存儲,不許壓縮。使用 EXTERNAL將令那些在 text 和 bytea 字段上的子字串操作更快(代價是增加了存儲空間),因此這些操作是經過優化的:如果行外數據沒有壓縮,那么它們只抓取需要的部分。

MAIN允許壓縮,不允許行外存儲。當數據值壓縮過后仍然太大將會采用行外存儲。每個可以 TOAST 的數據類型都為該數據類型的字段聲明一個缺省策略,但是特定表的字段的存儲策略可以用ALTER TABLE SET STORAGE修改。

優點:

相對直接的存儲方式來說,數據經過TOAST方式后,單個或者連續數據塊中能夠存儲更多的數據值,對于訪問非“大字段”時,能夠大量減少掃描塊數或者物理IO次數;

對于極少訪問的含“大字段”記錄,經過手動修改存儲屬性,采用TOAST方式,即便值小于2K的情況下同樣能夠帶來很好的效果。

針對系統數據訪問特定,靈活的采用TOAST存儲策略總能夠為系統帶來性能的提升。

題外話:oracle的大字段的存儲采用了行外的方式,對大字段默認進行段存儲,同時系統默認創建索引。將大字段根據磁盤配置進行單獨存儲,也是提升oracle部署性能的常見方式。

原文標題:postgresql TOAST存儲方式

鏈接:http://www.cnblogs.com/daduxiong/archive/2010/08/23/1806706.html

【編輯推薦】

  1. PostgreSQL新版提高Oracle兼容性 欲與甲骨文試比高?
  2. Sun如何處理PostgreSQL和Java DB?
  3. PostgreSQL 8.2簡介 附下載地址
  4. 簡評MySQL和PostgreSQL優劣
  5. 將你的網站從MySQL改為PostgreSQL

責任編輯:彭凡 來源: 博客園
相關推薦

2011-03-01 09:25:59

JDBC存儲方法

2011-07-25 17:50:42

PostgreSQLODBC

2019-05-29 19:00:35

HTML5存儲方式前端

2010-09-29 13:52:33

PostgreSQL

2024-07-08 10:48:51

2020-02-18 20:00:31

PostgreSQL數據庫

2019-08-28 07:11:00

Oracle數據庫LOB

2019-11-26 12:55:51

存儲數據IT

2022-09-20 14:46:17

PostgreSQL存儲工具

2021-08-10 15:44:37

PostgreSQL表分區分區表

2010-11-29 13:39:13

Sybase字段類型

2009-12-28 10:47:58

WPF繪圖

2018-02-10 09:59:51

Java網絡IO模型

2011-08-24 14:07:13

PostgreSQLStreaming R

2009-08-18 22:11:56

虛擬存儲類型

2020-11-26 10:33:44

MySQL存儲函數

2023-03-19 17:36:38

2023-03-22 11:41:56

2021-10-15 06:43:11

數據庫存儲過程

2018-01-31 08:44:20

數據存儲存儲設備存儲系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品视频一二三区 | 国产一区二区三区久久久久久久久 | 国产精品一区二区不卡 | 91福利网址 | 黄视频网站免费观看 | 亚洲五码久久 | 91久久综合亚洲鲁鲁五月天 | 99久久精品国产麻豆演员表 | 成人国产在线视频 | 欧美日韩久 | 亚洲一区二区三区四区五区午夜 | 在线视频一区二区 | 亚洲高清在线 | 欧美在线视频一区二区 | 欧美日韩专区 | 男女免费在线观看视频 | 精品一区av| 特级生活片 | 久久久久国产成人精品亚洲午夜 | 欧美成视频 | 91精品国产91久久久久久 | 亚洲欧洲日本国产 | 国产精品一区一区三区 | 欧美精品久久久 | 国产精品成人一区二区三区夜夜夜 | 成人综合伊人 | 久久草视频| 久久综合久色欧美综合狠狠 | 亚洲免费在线观看 | 国产日韩中文字幕 | a黄视频 | 在线免费视频一区 | 日本超碰在线 | 精品一区二区三区不卡 | 一区二区免费在线视频 | 国产高清在线 | 成人av在线播放 | 国产一区二区三区视频免费观看 | av男人的天堂在线 | 亚洲国产一区二区视频 | 国产精品久久久久久亚洲调教 |