日韩小视频-日韩久久一区二区三区-日韩久久一级毛片-日韩久久久精品中文字幕-国产精品亚洲精品影院-国产精品亚洲欧美云霸高清

下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當前位置:軟件下載吧 > 技術開發 > 數據庫 > PostgreSQL 創建表分區

PostgreSQL 創建表分區

時間:2024-02-14 10:20作者:下載吧人氣:21

創建表分區步驟如下:
1. 創建主表
CREATE TABLE users ( uid int not null primary key, name varchar(20));
2. 創建分區表(必須繼承上面的主表)
CREATE TABLE users_0 ( check (uid >= 0 and uid< 100) ) INHERITS (users);
CREATE TABLE users_1 ( check (uid >= 100)) INHERITS (users);
3. 在分區表上建立索引,其實這步可以省略的哦
CREATE INDEX users_0_uidindex on users_0(uid);
CREATE INDEX users_1_uidindex on users_1(uid);
4. 創建規則RULE
CREATE RULE users_insert_0 AS
ON INSERT TO users WHERE
(uid >= 0 and uid < 100)
DO INSTEAD
INSERT INTO users_0 VALUES (NEW.uid,NEW.name);
CREATE RULE users_insert_1 AS
ON INSERT TO users WHERE
(uid >= 100)
DO INSTEAD
INSERT INTO users_1 VALUES (NEW.uid,NEW.name);
下面就可以測試寫入數據啦:
postgres=# INSERT INTO users VALUES (100,’smallfish’);
INSERT 0 0
postgres=# INSERT INTO users VALUES (20,’aaaaa’);
INSERT 0 0
postgres=# select * from users;
uid | name
—–+———–
20 | aaaaa
100 | smallfish
(2 筆資料列)
postgres=# select * from users_0;
uid | name
—–+——-
20 | aaaaa
(1 筆資料列)
postgres=# select * from users_1;
uid | name
—–+———–
100 | smallfish
(1 筆資料列)
到這里表分區已經可以算完了,不過還有個地方需要修改下,先看count查詢把。
postgres=# EXPLAIN SELECT count(*) FROM users where uid<100;
QUERY PLAN
———————————————————————————————
Aggregate (cost=62.75..62.76 rows=1 width=0)
-> Append (cost=6.52..60.55 rows=879 width=0)
-> Bitmap Heap Scan on users (cost=6.52..20.18 rows=293 width=0)
Recheck Cond: (uid < 100)
-> Bitmap Index Scan on users_pkey (cost=0.00..6.45 rows=293 width=0)
Index Cond: (uid < 100)
-> Bitmap Heap Scan on users_0 users (cost=6.52..20.18 rows=293 width=0)
Recheck Cond: (uid < 100)
-> Bitmap Index Scan on users_0_uidindex (cost=0.00..6.45 rows=293 width=0)
Index Cond: (uid < 100)
-> Bitmap Heap Scan on users_1 users (cost=6.52..20.18 rows=293 width=0)
Recheck Cond: (uid < 100)
-> Bitmap Index Scan on users_1_uidindex (cost=0.00..6.45 rows=293 width=0)
Index Cond: (uid < 100)
(14 筆資料列)
按照本來想法,uid小于100,理論上應該只是查詢users_0表,通過EXPLAIN可以看到其他他掃描了所有分區的表。
postgres=# SET constraint_exclusion = on;
SET
postgres=# EXPLAIN SELECT count(*) FROM users where uid<100;
QUERY PLAN
———————————————————————————————
Aggregate (cost=41.83..41.84 rows=1 width=0)
-> Append (cost=6.52..40.37 rows=586 width=0)
-> Bitmap Heap Scan on users (cost=6.52..20.18 rows=293 width=0)
Recheck Cond: (uid < 100)
-> Bitmap Index Scan on users_pkey (cost=0.00..6.45 rows=293 width=0)
Index Cond: (uid < 100)
-> Bitmap Heap Scan on users_0 users (cost=6.52..20.18 rows=293 width=0)
Recheck Cond: (uid < 100)
-> Bitmap Index Scan on users_0_uidindex (cost=0.00..6.45 rows=293 width=0)
Index Cond: (uid < 100)
(10 筆資料列)
到這里整個過程都OK啦!

標簽[db:關鍵字]

相關下載

查看所有評論+

網友評論

網友
您的評論需要經過審核才能顯示

熱門閱覽

最新排行

公眾號

主站蜘蛛池模板: 三级午夜三级三点在看 | 亚洲专区一| 久久99精品综合国产首页 | 久一在线 | 欧美 自拍 丝袜 亚洲 | 最新在线步兵区 | 亚洲精品欧美精品国产精品 | 精品国产午夜肉伦伦影院 | 国产乱子伦在线观看不卡 | 亚洲欧美日韩色 | 精品久久久久久免费影院 | 亚洲精品久久玖玖玖玖 | 亚洲3级| 国产欧美精品区一区二区三区 | 久热中文字幕在线精品免费 | 国产欧美一区二区另类精品 | 国产福利最新手机在线观看 | 日韩一级不卡 | 久草在线观看首页 | 香蕉成人在线视频 | 精品少妇一区二区三区视频 | 日本亚洲欧美在线 | 毛片免费观看视频 | 精品国产欧美一区二区 | 日韩欧美三级在线观看 | 亚洲精品xxxxx| 国产亚洲欧美日韩综合综合二区 | 99ri在线精品视频在线播放 | 久久亚洲精品中文字幕亚瑟 | 欧美成人免费在线视频 | 欧美特黄视频在线观看 | 亚洲韩国日本欧美一区二区三区 | 午夜大片免费男女爽爽影院久久 | 欧美视频久久 | 国产成人精品日本亚洲麻豆 | 国产一级在线观看www色 | 国产精品国产亚洲精品看不卡 | 搞黄网站免费看 | 毛片在线视频在线播放 | 欧美日韩免费一区二区三区 | 欧美顶级毛片在线播放小说 |