欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

PostgreSQL分區(qū)表怎么解析

PostgreSQL 分區(qū)表怎么解析,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、鹿寨網(wǎng)站維護(hù)、網(wǎng)站推廣。

MySQL 在分區(qū)表上的缺失不同,POSTGRESQL 的分區(qū)表那算是“硬可”。PG11 已經(jīng)推出了HASH 分區(qū)。具體操作是怎樣

首先分區(qū)表的大致用途有那些

1  在符合業(yè)務(wù)的基礎(chǔ)上,能對(duì)合理的預(yù)設(shè)的查詢提高查詢的速度

2  在符合業(yè)務(wù)的基礎(chǔ)上,能對(duì)數(shù)據(jù)的插入降低熱點(diǎn)塊的競(jìng)爭(zhēng),提高插入速度

3  在某些場(chǎng)合合理的訪問分區(qū)可能順序的掃描分區(qū)內(nèi)的數(shù)據(jù)比使用分區(qū)內(nèi)的索引更能提高數(shù)據(jù)訪問的性能。

4  合理的設(shè)置分區(qū),會(huì)更方便處理無用的數(shù)據(jù),統(tǒng)一將一個(gè)分區(qū)內(nèi)的數(shù)據(jù)進(jìn)行處理。

目前 POSTGRESQL 支持的分區(qū)方式有

1   Range Partitiioning

2   List Partitioning

3   Hash Partitioning

與ORACLE 差不多的是,每個(gè)分區(qū)也是可以有自己的子分區(qū)的索引,默認(rèn)值,或者一些其他定義。

另外一件事情是分區(qū)這個(gè)事情是需要有預(yù)先的設(shè)計(jì)的,而不是在系統(tǒng)的數(shù)據(jù)庫表已經(jīng)運(yùn)行了好長(zhǎng)一段時(shí)間后,在去做分區(qū)表。所以在系統(tǒng)設(shè)計(jì)之初就做好設(shè)計(jì)工作是重要的。

下面我們就來做點(diǎn)什么

1 HASH Partitioning  這是在 PG 11 中的新功能 ,通過HASH partitioning 可以加速數(shù)據(jù)的插入,這也是ORACLE DBA 引以為豪的傲嬌點(diǎn)。

下面建立一個(gè)HASH分區(qū)表,這里已BIGINT 為主鍵,插入的主鍵除以10后余數(shù)來選擇記錄的落點(diǎn)。

后面直接插入20萬數(shù)據(jù)不到1 秒就完成了

PostgreSQL 分區(qū)表怎么解析

我們來看看插入的數(shù)據(jù),基本上都打散了。

PostgreSQL 分區(qū)表怎么解析

查詢也是沒有問題,走了主鍵的索引

PostgreSQL 分區(qū)表怎么解析

而清除一個(gè)分區(qū)表的數(shù)據(jù)也很簡(jiǎn)單,直接刪除那個(gè)表就可以了

PostgreSQL 分區(qū)表怎么解析

如果想繼續(xù)恢復(fù)那個(gè)分區(qū)也是很容易的事情

當(dāng)然如果你想保留數(shù)據(jù)分區(qū)表的部分?jǐn)?shù)據(jù),但又不想他成為分區(qū)表中的一員也很簡(jiǎn)單。

PostgreSQL 分區(qū)表怎么解析

同時(shí)PostgreSQL 也同樣支持range 分區(qū)的類型,通過range 類型的分區(qū)可以根據(jù)已經(jīng)設(shè)計(jì)好的日期,或者其他表中的行數(shù)據(jù)進(jìn)行劃分,進(jìn)行分區(qū)表存儲(chǔ)。

廢話不說,建立相關(guān)的表和分區(qū)表

PostgreSQL 分區(qū)表怎么解析

在建立日期類型的分區(qū)表中,要注意到to 是不包含后面指定的時(shí)間段,如果設(shè)置成 from ('2008-01-01') to ('2008-12-31')  下一個(gè)range 設(shè)置成 from ('2019-01-01') to ('2019-12-31') 則在插入數(shù)據(jù)的時(shí)候會(huì)報(bào)

no partition of relation found for row

的問題。

另一個(gè)問題是,建立分區(qū)表的時(shí)候(Postgresql 不建議建立主鍵,這樣會(huì)引起以后必要的麻煩,如果需要可以建立唯一索引)

創(chuàng)建一個(gè)存儲(chǔ)過程來進(jìn)行數(shù)據(jù)的插入,看看分區(qū)表是否有問題

create or replace procedure insert_data()

language plpgsql

as $$

declare 

date_value timestamp;

declare id int;

begin

date_value := '2007-01-01 00:00:00'::timestamp + '1 hour';

id = 1;

while id < 400000 loop

insert into range_test (password,insert_date) (select id::char(48),date_value::timestamp);

id = id + 1;

date_value  := date_value::timestamp + '1 hour';

end loop;

end;

$$;

PostgreSQL 分區(qū)表怎么解析

通過圖中的兩條語句來進(jìn)行數(shù)據(jù)的驗(yàn)證,沒有問題。

根據(jù)查詢的要求我們還可以建立相關(guān)的分區(qū)索引

PostgreSQL 分區(qū)表怎么解析

當(dāng)然如果全表查詢,也可以走全局的索引

PostgreSQL 分區(qū)表怎么解析

看完上述內(nèi)容,你們掌握PostgreSQL 分區(qū)表怎么解析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

文章名稱:PostgreSQL分區(qū)表怎么解析
標(biāo)題鏈接:http://chinadenli.net/article0/gicsio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)外貿(mào)建站、、微信小程序App開發(fā)、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)