021.PGSQL-調優3-審視和修改表定義:儲存模型、分佈方式、分佈列、分割槽表、資料型別
阿新 • • 發佈:2021-06-15
1.選擇儲存模型(列式、行式)
行存:點查詢(返回記錄少,基於索引的簡單查詢)
增刪改比較多
列存:統計分析類查詢 (group 、join多)
即席查詢(查詢列不確定,行存無法確定索引)
2.選擇分佈方式
hash 雜湊在叢集的各DN例項上
replication 叢集中每個DN例項上都有一份全量表資料
建表時,最後加上 ( )distribute by hash(rid);
3.選擇分佈列
列值比較離散的作為分佈列,支援多分佈列,防止出現數據傾斜
檢查是否出現數據傾斜
select xc_node_id -- DN
, count(1) from tablenamegroup by xc_node_id order by xc_node_id desc;
不同DN相差超過5% 視為資料傾斜,超過10%必須要調整
4.使用區域性聚簇
5.使用分割槽表
- 建立表空間
CREATE TABLESPACE example1 RELATIVE LOCATION 'tablespace1/tablespace_1'; CREATE TABLESPACE example2 RELATIVE LOCATION 'tablespace2/tablespace_2'; CREATE TABLESPACE example3 RELATIVE LOCATION 'tablespace3/tablespace_3';
當結果顯示為如下資訊,則表示建立成功。
CREATE TABLESPACE
- 建立分割槽表
CREATE TABLE tpcds.customer_address ( ca_address_sk integer NOT NULL , ca_address_id character(16) NOT NULL , ca_street_number character(10)
6.選擇資料型別
如果可以用smallint就儘量不用int,如果可以用int就儘量不用bigint
表關聯列儘量使用相同的資料型別