亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PostgreSQL 創(chuàng)建表分區(qū)

 更新時間:2009年09月06日 01:22:24   作者:  
在pg里表分區(qū)是通過表繼承來實現(xiàn)的,一般都是建立一個主表,里面是空,然后每個分區(qū)都去繼承它。
創(chuàng)建表分區(qū)步驟如下:
1. 創(chuàng)建主表
CREATE TABLE users ( uid int not null primary key, name varchar(20));
2. 創(chuàng)建分區(qū)表(必須繼承上面的主表)
CREATE TABLE users_0 ( check (uid >= 0 and uid< 100) ) INHERITS (users);
CREATE TABLE users_1 ( check (uid >= 100)) INHERITS (users);
3. 在分區(qū)表上建立索引,其實這步可以省略的哦
CREATE INDEX users_0_uidindex on users_0(uid);
CREATE INDEX users_1_uidindex on users_1(uid);
4. 創(chuàng)建規(guī)則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);
下面就可以測試寫入數(shù)據(jù)啦:
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 筆資料列)
到這里表分區(qū)已經(jīng)可以算完了,不過還有個地方需要修改下,先看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,理論上應(yīng)該只是查詢users_0表,通過EXPLAIN可以看到其他他掃描了所有分區(qū)的表。
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啦!

相關(guān)文章

  • 對Postgresql中的json和array使用介紹

    對Postgresql中的json和array使用介紹

    這篇文章主要介紹了對Postgresql中的json和array使用介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Postgresql 如何選擇正確的關(guān)閉模式

    Postgresql 如何選擇正確的關(guān)閉模式

    這篇文章主要介紹了Postgresl 如何選擇正確的關(guān)閉模式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • SQLite教程(七):數(shù)據(jù)類型詳解

    SQLite教程(七):數(shù)據(jù)類型詳解

    這篇文章主要介紹了SQLite教程(七):數(shù)據(jù)類型詳解,本文講解了存儲種類和數(shù)據(jù)類型、類型親緣性、比較表達式、操作符等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • 安全高效的PostgreSQL數(shù)據(jù)庫遷移解決方案

    安全高效的PostgreSQL數(shù)據(jù)庫遷移解決方案

    PostgreSQL數(shù)據(jù)庫是一款高度可擴展的開源數(shù)據(jù)庫系統(tǒng),支持復(fù)雜的查詢、事務(wù)完整性和多種數(shù)據(jù)類型由于各種業(yè)務(wù)需求,企業(yè)常常需要將數(shù)據(jù)在不同的云平臺或私有環(huán)境之間遷移,所以本文小編給大家介紹了安全高效的PostgreSQL數(shù)據(jù)庫遷移解決方案,需要的朋友可以參考下
    2023-11-11
  • PGSQL 實現(xiàn)把字符串轉(zhuǎn)換成double類型(to_number())

    PGSQL 實現(xiàn)把字符串轉(zhuǎn)換成double類型(to_number())

    這篇文章主要介紹了PGSQL 實現(xiàn)把字符串轉(zhuǎn)換成double類型(to_number()),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL利用遞歸優(yōu)化求稀疏列唯一值的方法

    PostgreSQL利用遞歸優(yōu)化求稀疏列唯一值的方法

    這篇文章主要介紹了PostgreSQL利用遞歸優(yōu)化求稀疏列唯一值的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Windows?系統(tǒng)?PostgreSQL?手工安裝配置方法

    Windows?系統(tǒng)?PostgreSQL?手工安裝配置方法

    這篇文章主要介紹了Windows?系統(tǒng)?PostgreSQL?手工安裝配置方法,本文主要說一下在?Windows?系統(tǒng)中安裝?PostgreSQL?的方法,我這里沒有采用?exe?安裝包的形式去安裝,EDB?發(fā)布的那個?exe?安裝包形式的對于中文環(huán)境數(shù)據(jù)庫的排序規(guī)則設(shè)定有問題,需要的朋友可以參考下
    2022-09-09
  • 在PostgreSQL中實現(xiàn)跨數(shù)據(jù)庫的關(guān)聯(lián)查詢

    在PostgreSQL中實現(xiàn)跨數(shù)據(jù)庫的關(guān)聯(lián)查詢

    在 PostgreSQL 中,通常情況下的關(guān)聯(lián)查詢是在同一個數(shù)據(jù)庫的不同表之間進行的,然而,在某些復(fù)雜的應(yīng)用場景中,可能需要實現(xiàn)跨數(shù)據(jù)庫的關(guān)聯(lián)查詢,本文將詳細探討如何在 PostgreSQL 中實現(xiàn)這一需求,并通過示例代碼進行說明,需要的朋友可以參考下
    2024-08-08
  • PostgreSQL中實現(xiàn)自增的三種方式舉例

    PostgreSQL中實現(xiàn)自增的三種方式舉例

    很多小伙伴在把mysql數(shù)據(jù)庫里面的表導(dǎo)入pgsql數(shù)據(jù)庫的時候,會遇到新增數(shù)據(jù)的時候id不自增,這篇文章主要給大家介紹了關(guān)于PostgreSQL中實現(xiàn)自增的三種方式,需要的朋友可以參考下
    2024-02-02
  • postgresql 獲取兩個時間類型小時差值案例

    postgresql 獲取兩個時間類型小時差值案例

    這篇文章主要介紹了postgresql 獲取兩個時間類型小時差值案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論