開始
postgresql 到目前為止,是不支援原生的分割槽表的,看看它如何實現:
要實現分割槽,需要借助繼承與規則。
postgres=# createtable ptest(id integer, name varchar(20
));create
table
postgres
=# create
table ctest01(check(id<
5000000
)) inherits (ptest);
create
table
postgres
=# create
table ctest02(check(id>=
5000000
)) inherits (ptest);
create
table
postgres=#
postgres
=# create
index
onctest01(id);
create
index
postgres
=# create
index
onctest02(id);
create
index
postgres=#
postgres=#
postgres
=# create
orreplace
function ptest_insert_trigger() returns
trigger
as$$
postgres$#
postgres$#
begin
postgres$#
postgres$#
if ( new.id <
5000000 ) then
postgres$#
insert
into ctest01 values (new.*
);postgres$# elsif ( new.id
>=
5000000 ) then
postgres$#
insert
into ctest02 values (new.*
); postgres$#
else
postgres$# raise exception
'error while inserting data';
postgres$#
endif
; postgres$#
postgres$#
return
null
;postgres$#
end; $$ language plpgsql;
create
function
postgres=#
postgres
=# create
trigger insert_ptest_trigger before insert
on ptest for
each row
postgres
-# execute
procedure
ptest_insert_trigger();
create
trigger
postgres
=#
其實如果從其他的表裡一次性地向分割槽表裡匯入資料,那麼最好先把 index 和 constraint 無效化。
結束
PostgreSQL 動態分表 Rotate輪詢
工作中,遇到如下業務需求 使用者可以自定義歷史資料的儲存期限,且對過期資料不作保留 即定期刪除 該類資料表的數量級在6千萬 年。前期處理方案 按月分表,由於在專案前期,限制使用者只能儲存一年的資料量,通過pg的rule分表,並通過一張中間表,進行新月份資料的錄入更替。簡單rotate用法,在月份更替...
Windows下實現PostgreSQL自動備份
本文介紹怎樣建立乙個windows批處理檔案來自動備份postgresql資料庫。背景 在我工作上乙個使用postgresql資料庫的專案上需要乙個自動化系統來每天執行備份。經過一番研究決定通過建立乙個windows批處理檔案並新增到windows計畫任務中來實現。下面是具體步驟 怎樣配置 第一步 ...
Jmeter 實現操作postgresql資料庫
環境 jmeter版本 3.2,jdk 1.8 postgresql驅動包postgresql 9.3 1103.jdbc4,將該jar包置於.apache jmeter 3.2 lib 檔案下 提取密碼 cb5h jmeter配置 1 新增配置元件 jdbc connection configur...