admin

[運營交流] postgresql表分區

隨著數據庫慢慢增大,查詢會變得越來越慢,下面介紹下表分區,用來提升查詢速度,postgresql本身支持這個功能,但是今天寫的是pg_pathman,一個阿里做的東西。

支持9.5+,易讀默認裝的是9.3,要升級下數據庫。


過幾天把安裝腳本更新一下,裝postgresql10。


在安裝了10的前提下,進行下面的設置就可以啟用了。


安裝pg_pathman

yum -y install postgresql10-devel


git clone https://github.com/postgrespro/pg_pathman

#export PATH=/var/lib/pgsql/10:$PATH

export PATH=/usr/pgsql-10/bin/:$PATH



cd pg_pathman

make USE_PGXS=1

make USE_PGXS=1 install


修改配置文件,添加pg_pathman擴展

vi postgresql.conf

shared_preload_libraries = 'pg_pathman' 

創建擴張

create extension pg_pathman;

把articleno設置為非NULL。pg_pathman要求是非NULL的

ALTER TABLE t_chapter ALTER COLUMN articleno SET NOT NULL;

每個子表保存1000本小說的數據

select create_range_partitions('t_chapter'::regclass,'articleno',0,1000,77,false) ;

非阻塞轉移數據

select partition_table_concurrently('t_chapter'::regclass,10000,1.0);

確認主表數據已經被轉移到子表

select count(*) from only t_chapter;

禁用主表,都用子表去處理

select set_enable_parent('t_chapter'::regclass, false);

查看一下查詢計劃,看看是不是走的子表

explain select * from t_chapter where articleno = 45052;


測試結果,速度提升還是挺明顯的。


可以參考下這里

https://yq.aliyun.com/articles/62314


#1樓
發帖時間:2017-12-26   |   查看數:0   |   回復數:1
admin
出現
usr/pgsql-10/include/server/libpq/libpq-be.h:23:25: fatal error: openssl/ssl.h: No such file or directory
錯誤的話,

yum install openssl-devel安裝一下
2018-1-17 #2樓
游客組
?