亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

單表數(shù)據(jù)量 200 GB,PostgreSQL 怎么應(yīng)對(duì)?

admin
2024年7月18日 11:4 本文熱度 2363

導(dǎo)讀

當(dāng)前運(yùn)行的 Oracle 數(shù)據(jù)庫(kù),有個(gè)大表數(shù)據(jù)量幾百 GB,擔(dān)心 PostgreSQL 應(yīng)付不了?其實(shí),不用擔(dān)心,PostgreSQL 有各種應(yīng)付大數(shù)據(jù)量存儲(chǔ)的武器,比如:分區(qū)表。

為什么要對(duì)表進(jìn)行分區(qū)?

表分區(qū)允許將一個(gè)大表拆分為多個(gè)小表,這樣可以帶來以下好處:

  • • 較小的表在讀取和寫入方面速度更快。

  • • 您可以非常高效地刪除整個(gè)分區(qū),而不是逐行刪除數(shù)據(jù)。

  • • 由于 PostgreSQL 知道如何修剪未用到的分區(qū),因此您可以將分區(qū)用作一種粗略索引。例如,通過按日期劃分表,您可能不再需要日期字段上的索引,而是使用順序掃描。

  • • 很少使用的分區(qū)可以移動(dòng)到更便宜的存儲(chǔ)中。

分區(qū)方式

假設(shè)我們有一個(gè)表:

CREATE TABLE measurements (
  id int8 NOT NULL,
  value float8 NOT NULL,
  date timestamptz NOT NULL
);

您可以通過提供用作分區(qū)鍵的列,來對(duì)該表進(jìn)行分區(qū):

CREATE TABLE measurements (
  id int8 NOT NULL,
  value float8 NOT NULL,
  date timestamptz NOT NULL
PARTITION BY RANGE (date);

PostgreSQL 支持多種分區(qū)方式,這些方式的區(qū)別僅在于它們?yōu)榉謪^(qū)鍵指定行值的方式。

按范圍分區(qū)

按范圍分區(qū)允許為分區(qū)指定一個(gè)值的范圍,例如,我們可以將每個(gè)月的數(shù)據(jù)存儲(chǔ)在一個(gè)單獨(dú)的分區(qū)中:

CREATE TABLE measurements_y2021m01 PARTITION OF measurements
FOR VALUES FROM ('2021-01-01'TO ('2021-02-01');

按列表分區(qū)

列表分區(qū)允許為分區(qū)指定一個(gè)值列表,例如,我們可以將一小部分經(jīng)常訪問的數(shù)據(jù)存儲(chǔ)在熱分區(qū)中,并將其余的數(shù)據(jù)移動(dòng)到冷分區(qū):

CREATE TABLE measurements (
  id int8 PRIMARY KEY,
  value float8 NOT NULL,
  date timestamptz NOT NULL,
  hot boolean
PARTITION BY LIST (hot);

CREATE TABLE measurements_hot PARTITION OF measurements
FOR VALUES IN (TRUE);

CREATE TABLE measurements_cold PARTITION OF measurements
FOR VALUES IN (NULL);

然后,您可以通過更改hot列,在分區(qū)之間移動(dòng)行:

-- Move rows to measurements_hot
UPDATE measurements SET hot = TRUE;

-- Move rows to measurements_cold
UPDATE measurements SET hot = NULL;

按哈希分區(qū)

按哈希分區(qū)允許將行均勻地分布到一組表中,例如,我們可以為表創(chuàng)建 3 個(gè)分區(qū),并使用一種相除取余的哈希方法,為行選擇一個(gè)分區(qū):

CREATE TABLE measurements (
  id int8 PRIMARY KEY,
  value float8 NOT NULL,
  date timestamptz NOT NULL
PARTITION BY HASH (id);

CREATE TABLE measurements_1 PARTITION OF measurements
FOR VALUES WITH (MODULUS 3, REMAINDER 0);

CREATE TABLE measurements_2 PARTITION OF measurements
FOR VALUES WITH (MODULUS 3, REMAINDER 1);

CREATE TABLE measurements_3 PARTITION OF measurements
FOR VALUES WITH (MODULUS 3, REMAINDER 2);

由于使用了哈希,這些分區(qū)將會(huì)接收大致相同數(shù)量的行。

管理分區(qū)

PostgreSQL 允許分離和附加分區(qū):

ALTER TABLE measurements DETACH PARTITION measurements_y2021m01;
ALTER TABLE measurements ATTACH PARTITION measurements_y2021m01
FOR VALUES FROM ('2021-01-01'TO ('2021-02-01');

您可以使用這些命令對(duì)現(xiàn)有表進(jìn)行分區(qū),而無需移動(dòng)任何數(shù)據(jù):

-- Use the existing table as a partition for the existing data.
ALTER TABLE measurements RENAME TO measurements_y2021m01;

-- Create the partitioned table.
CREATE TABLE measurements (LIKE measurements_y2021m01 INCLUDING DEFAULTS INCLUDING CONSTRAINTS)
PARTITION BY RANGE (date);

-- Attach the existing partition with open left constraint.
ALTER TABLE measurements ATTACH PARTITION measurements_y2021m01
FOR VALUES FROM ('0001-01-01'TO ('2021-02-01');

-- Use proper constraints for new partitions.
CREATE TABLE measurements_y2021m02 PARTITION OF measurements
FOR VALUES FROM ('2021-02-01'TO ('2021-03-01');

總結(jié)

本教程介紹了如何在 PostgreSQL 中,使用表分區(qū)將大型數(shù)據(jù)表拆分為較小的部分。


該文章在 2024/7/18 12:14:38 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved