婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談PostgreSQL 11 新特性之默認分區

淺談PostgreSQL 11 新特性之默認分區

熱門標簽:美容工作室地圖標注 漯河外呼電話系統 外呼調研系統 打電話智能電銷機器人授權 重慶自動外呼系統定制 地圖標注和圖片名稱的區別 海豐有多少商家沒有地圖標注 辦公外呼電話系統 合肥公司外呼系統運營商

文章目錄

PosgtreSQL 11 支持為分區表創建一個默認(DEFAULT)的分區,用于存儲無法匹配其他任何分區的數據。顯然,只有 RANGE 分區表和 LIST 分區表需要默認分區。

CREATE TABLE measurement (
  city_id     int not null,
  logdate     date not null,
  peaktemp    int,
  unitsales    int
) PARTITION BY RANGE (logdate);
CREATE TABLE measurement_y2018 PARTITION OF measurement
  FOR VALUES FROM ('2018-01-01') TO ('2019-01-01');

以上示例只創建了 2018 年的分區,如果插入 2017 年的數據,系統將會無法找到相應的分區:

INSERT INTO measurement(city_id,logdate,peaktemp,unitsales)
VALUES (1, '2017-10-01', 50, 200);
ERROR: no partition of relation "measurement" found for row
DETAIL: Partition key of the failing row contains (logdate) = (2017-10-01).

使用默認分區可以解決這類問題。創建默認分區時使用 DEFAULT 子句替代 FOR VALUES 子句。

CREATE TABLE measurement_default PARTITION OF measurement DEFAULT;
\d+ measurement
                 Table "public.measurement"
 Column  | Type  | Collation | Nullable | Default | Storage | Stats target | Description 
-----------+---------+-----------+----------+---------+---------+--------------+-------------
 city_id  | integer |      | not null |     | plain  |       | 
 logdate  | date  |      | not null |     | plain  |       | 
 peaktemp | integer |      |     |     | plain  |       | 
 unitsales | integer |      |     |     | plain  |       | 
Partition key: RANGE (logdate)
Partitions: measurement_y2018 FOR VALUES FROM ('2018-01-01') TO ('2019-01-01'),
      measurement_default DEFAULT

有了默認分區之后,未定義分區的數據將會插入到默認分區中:

INSERT INTO measurement(city_id,logdate,peaktemp,unitsales)
VALUES (1, '2017-10-01', 50, 200);
INSERT 0 1
select * from measurement_default;
 city_id | logdate  | peaktemp | unitsales 
---------+------------+----------+-----------
    1 | 2017-10-01 |    50 |    200
(1 row)

默認分區存在以下限制:

一個分區表只能擁有一個 DEFAULT 分區;

對于已經存儲在 DEFAULT 分區中的數據,不能再創建相應的分區;參見下文示例;

如果將已有的表掛載為 DEFAULT 分區,將會檢查該表中的所有數據;如果在已有的分區中存在相同的數據,將會產生一個錯誤;

哈希分區表不支持 DEFAULT 分區,實際上也不需要支持。

使用默認分區也可能導致一些不可預見的問題。例如,往 measurement 表中插入一條 2019 年的數據,由于沒有創建相應的分區,該記錄同樣會分配到默認分區:

INSERT INTO measurement(city_id,logdate,peaktemp,unitsales)
VALUES (1, '2019-03-25', 66, 100);
INSERT 0 1
select * from measurement_default;
 city_id | logdate  | peaktemp | unitsales 
---------+------------+----------+-----------
    1 | 2017-10-01 |    50 |    200
    1 | 2019-03-25 |    66 |    100
(2 rows)

此時,如果再創建 2019 年的分區,操作將會失敗。因為添加新的分區需要修改默認分區的范圍(不再包含 2019 年的數據),但是默認分區中已經存在 2019 年的數據。

CREATE TABLE measurement_y2019 PARTITION OF measurement
  FOR VALUES FROM ('2019-01-01') TO ('2020-01-01');
ERROR: updated partition constraint for default partition "measurement_default" would be violated by some row

為了解決這個問題,可以先將默認分區從分區表中卸載(DETACH PARTITION),創建新的分區,將默認分區中的相應的數據移動到新的分區,最后重新掛載默認分區。

ALTER TABLE measurement DETACH PARTITION measurement_default;
CREATE TABLE measurement_y2019 PARTITION OF measurement
  FOR VALUES FROM ('2019-01-01') TO ('2020-01-01');
INSERT INTO measurement_y2019
SELECT * FROM measurement_default WHERE logdate >= '2019-01-01' AND logdate  '2020-01-01';
INSERT 0 1
DELETE FROM measurement_default WHERE logdate >= '2019-01-01' AND logdate  '2020-01-01';
DELETE 1
ALTER TABLE measurement ATTACH PARTITION measurement_default DEFAULT;
CREATE TABLE measurement_y2020 PARTITION OF measurement
  FOR VALUES FROM ('2020-01-01') TO ('2021-01-01');
\d+ measurement
                 Table "public.measurement"
 Column  | Type  | Collation | Nullable | Default | Storage | Stats target | Description 
-----------+---------+-----------+----------+---------+---------+--------------+-------------
 city_id  | integer |      | not null |     | plain  |       | 
 logdate  | date  |      | not null |     | plain  |       | 
 peaktemp | integer |      |     |     | plain  |       | 
 unitsales | integer |      |     |     | plain  |       | 
Partition key: RANGE (logdate)
Partitions: measurement_y2018 FOR VALUES FROM ('2018-01-01') TO ('2019-01-01'),
      measurement_y2019 FOR VALUES FROM ('2019-01-01') TO ('2020-01-01'),
      measurement_y2020 FOR VALUES FROM ('2020-01-01') TO ('2021-01-01'),
      measurement_default DEFAULT

官方文檔:Table Partitioning

補充:postgresql10以上的自動分區分表功能

一.列分表

1.首先創建主分區表:

create table fenbiao( 
id int, 
year varchar 
) partition by list(year)

這里設置的是根據year列進行數據分表;創建后使用navicat是看不到的;

2.創建分表:

create table fenbiao_2017 partition of fenbiao for values in ('2017')

create table fenbiao_2018 partition of fenbiao for values in ('2018')

這樣這兩天數據會依靠規則插入到不同分表中,如果插入一條不符合規則的數據,則會報錯誤:no partition of relation "fenbiao" found for row.

二.范圍分表

1.以year列為范圍進行分表

create table fenbiao2( 
id int, 
year varchar 
) partition by range(year)

2.創建分表

create table fenbiao2_2018_2020 partition of fenbiao2 for values from ('2018') to ('2020')

create table fenbiao2_2020_2030 partition of fenbiao2 for values from ('2020') to ('2030')

注意:此時插入year=2020會插入到下面的表;如下面表范圍為2021到2030,則會報錯;同時插入2030也會報錯;范圍相當于時a=yearb;

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • PostgreSQL LIST、RANGE 表分區的實現方案
  • PostgreSQL 創建表分區
  • 淺析postgresql 數據庫 TimescaleDB 修改分區時間范圍
  • 利用python為PostgreSQL的表自動添加分區
  • 如何為PostgreSQL的表自動添加分區
  • PostgreSQL之分區表(partitioning)
  • PostgreSQL分區表(partitioning)應用實例詳解
  • PostgreSQL教程(三):表的繼承和分區表詳解
  • 淺談PostgreSQL表分區的三種方式

標簽:烏海 珠海 蚌埠 來賓 晉城 株洲 錦州 衡陽

巨人網絡通訊聲明:本文標題《淺談PostgreSQL 11 新特性之默認分區》,本文關鍵詞  淺談,PostgreSQL,新特性,新,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談PostgreSQL 11 新特性之默認分區》相關的同類信息!
  • 本頁收集關于淺談PostgreSQL 11 新特性之默認分區的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产女主播在线一区二区| 成人开心网精品视频| 欧美福利视频一区| 国产黄色91视频| 日韩av电影免费观看高清完整版在线观看| 久久久国产一区二区三区四区小说| 欧美日韩中文字幕一区| 粉嫩蜜臀av国产精品网站| 日本强好片久久久久久aaa| 亚洲精品国产一区二区精华液 | 国产精品伦理在线| 久久综合视频网| 日韩视频中午一区| 7777精品伊人久久久大香线蕉 | 欧美一区二区网站| 欧美日韩国产经典色站一区二区三区 | 激情深爱一区二区| 日本欧美加勒比视频| 亚洲v中文字幕| 亚洲成人www| 天天综合网 天天综合色| 亚洲成人av一区二区三区| 亚洲一区二区成人在线观看| 亚洲日本青草视频在线怡红院| 国产精品久久国产精麻豆99网站| 中文字幕av资源一区| 国产精品久久久久天堂| 亚洲欧美综合色| 亚洲精品一二三四区| 亚洲一区二区三区爽爽爽爽爽| 一区二区三区中文字幕电影| 亚洲一区二区精品久久av| 午夜精品福利久久久| 日本不卡高清视频| 国内精品伊人久久久久av一坑| 国产乱子伦视频一区二区三区 | 亚洲自拍偷拍麻豆| 中文字幕一区三区| 亚洲人被黑人高潮完整版| 亚洲手机成人高清视频| 亚洲人成影院在线观看| 亚洲影院理伦片| 日韩激情视频在线观看| 久久精品国产久精国产| 丁香亚洲综合激情啪啪综合| 91老师片黄在线观看| 欧美伊人久久久久久久久影院| 日韩一二三区视频| 中文字幕精品一区二区精品绿巨人| 成人免费小视频| 婷婷激情综合网| 国产电影一区在线| 欧美图区在线视频| 欧美日本一道本| 777久久久精品| 国产偷国产偷亚洲高清人白洁| 国产午夜精品在线观看| 亚洲黄色小视频| 美女视频网站久久| 不卡视频在线观看| 91麻豆精品国产91久久久久| 久久久久一区二区三区四区| 依依成人精品视频| 精品在线你懂的| 欧美在线免费视屏| 国产精品日韩成人| 国产精品性做久久久久久| 欧美日韩一区二区三区高清| 中文字幕制服丝袜成人av | 亚洲444eee在线观看| 91久久久免费一区二区| 亚洲国产成人在线| av激情综合网| 国产女人aaa级久久久级| 久久精品国产99国产精品| 欧美日韩大陆一区二区| 国产精品国产馆在线真实露脸| 国产乱码精品一区二区三| 国产日韩视频一区二区三区| 国产成人久久精品77777最新版本| 日韩欧美电影在线| 国产自产高清不卡| 国产精品电影一区二区| 91亚洲大成网污www| 一区二区三区欧美日韩| 欧美疯狂做受xxxx富婆| 日本不卡不码高清免费观看| 日韩欧美色综合| 风间由美一区二区三区在线观看| 国产精品久久午夜| 欧美欧美午夜aⅴ在线观看| 日韩激情在线观看| 日韩一区二区三区电影| 国产精品77777| 亚洲精品写真福利| 欧美四级电影在线观看| 亚洲免费电影在线| 欧美日韩dvd在线观看| 国产一区福利在线| 欧美激情在线观看视频免费| 在线观看视频欧美| 久久99九九99精品| 亚洲国产精品自拍| 久久综合色一综合色88| 99re热视频这里只精品| 喷水一区二区三区| 一区二区三区在线观看国产| 国产亚洲一区二区在线观看| 欧美午夜电影在线播放| av在线这里只有精品| 老司机精品视频在线| 伊人色综合久久天天人手人婷| 久久一夜天堂av一区二区三区| 精品久久久久久无| 日韩一级大片在线| 精品区一区二区| 91精品福利在线一区二区三区| 91视视频在线观看入口直接观看www | 中文字幕在线不卡一区二区三区| 欧美亚洲动漫精品| 91日韩一区二区三区| 国产一区二区伦理| 极品少妇xxxx精品少妇| 久久精品噜噜噜成人av农村| 蜜臀av国产精品久久久久| 热久久久久久久| 激情综合一区二区三区| 免费人成在线不卡| 日韩中文字幕不卡| 久久草av在线| 国产aⅴ精品一区二区三区色成熟| 国产成人午夜视频| 国产激情一区二区三区| 91丨porny丨最新| 精品国精品国产| 亚洲日本在线观看| 日韩不卡一二三区| 国产资源在线一区| 色婷婷av久久久久久久| 精品日韩在线一区| 成人免费一区二区三区在线观看| 亚洲一区二区三区四区在线观看 | 日韩欧美一区在线| 欧美激情资源网| 一区二区在线观看视频在线观看| 蜜桃av一区二区三区| caoporm超碰国产精品| 欧美日韩电影在线播放| 国产精品久久毛片av大全日韩| 婷婷中文字幕一区三区| 91免费国产在线| 精品国产91九色蝌蚪| 亚洲午夜久久久久久久久电影网| 国产成人精品亚洲777人妖 | 国产精品久久毛片| 久久99精品久久久久婷婷| 欧美视频一区在线| 亚洲人一二三区| 美腿丝袜在线亚洲一区| 欧美精品日韩精品| 亚洲免费伊人电影| 成人激情文学综合网| 久久美女艺术照精彩视频福利播放| 性做久久久久久| 欧美精品日韩综合在线| 日本欧美一区二区三区乱码| 欧美日韩不卡一区二区| 日韩精品亚洲专区| 久久亚洲捆绑美女| 丁香五精品蜜臀久久久久99网站| 国产午夜精品在线观看| 日本久久一区二区三区| 麻豆精品一二三| 国产欧美一区二区在线| 95精品视频在线| 蜜乳av一区二区| 国产精品久久国产精麻豆99网站| 97se狠狠狠综合亚洲狠狠| 青娱乐精品视频| 国产精品美女久久久久久久久| 欧美专区亚洲专区| 国产精品一区二区在线观看不卡 | 天堂午夜影视日韩欧美一区二区| 欧美一级高清片| 99精品视频免费在线观看| 免费观看在线色综合| 成人欧美一区二区三区在线播放| 欧美高清www午色夜在线视频| 成人app网站| 激情图片小说一区| 三级欧美韩日大片在线看| 综合久久久久久| 国产女人18毛片水真多成人如厕 | 精品免费99久久| 欧美军同video69gay| 99国产精品国产精品久久| 国产乱人伦精品一区二区在线观看 | 韩国女主播成人在线观看| 亚洲黄色在线视频| 国产精品丝袜一区|