GaussDB(DWS)之數據庫對象設計

      網友投稿 1063 2025-03-31

      GaussDB(DWS)之數據庫對象設計


      1、根據應用邏輯設計數據庫

      根據業務邏輯,抽象出表定義,表其實就是描述了實體的各個屬性;根據業務邏輯,判斷表在數據庫中的存儲方式;優化表定義和查詢語句;

      2、行存儲和列存儲的特點

      能夠根據數據特征自適應的選擇壓縮算法,平均壓縮比7:1;根據預置的時間策略對數據自動壓縮;

      壓縮數據可通過數據庫接口繼續訪問,壓縮過程對應用透明;壓縮數據可直接訪問,對業務透明,無需導入導出,極大縮短歷史數據訪問的準備時間;

      - 優點:數據庫性能瓶頸經常集中在磁盤I/O,數據壓縮后,讀取數據時,相對于壓縮解壓,減少I/O能夠更好地提高性能;

      3、選擇行存還是列存

      - 列存適合的場景:統計分析類查詢(group,join多的場景);即興查詢(查詢條件列不確定,行存無法確定索引);

      - 行存適合的場景:點查詢(返回記錄少,基于索引的簡單查詢);增刪改比較多的場景;

      4、數據分布方式

      復制Replication方式;散列Hash方式

      - 復制(Replication)方式 - 將表中的所有數據復制到集群中每一個DN實例上,主要適用于記錄集較小的表(10W行記錄以下);

      - 散列(Hash)方式 - 將表中指定字段進行hash運算后,生成對應的hash值,根據DN實例與哈希值的映射關系獲得該元組的目標存儲位置,適用于數據量較大的表;

      5、數據分布策略

      分布存儲和并發查詢是MPP架構數據庫的主要優勢所在,將一個大數據量表中的數據,按合適分布策略分散存儲在多個DN實例內,可極大提升數據庫性能;

      6、分布列的選擇

      - 盡量選擇distinct值比較多的列,保證數據均勻分布,分布均勻是為了避免木桶效應,讓各個主機對等執行;

      - 盡量選擇Join列或group 列做分布列,盡量選擇Join列或group列是為了避免DN之間數據流動, 提高性能;

      - 盡量不要選擇filter列作為分布列;

      - 不同DataNode的數據量相差5%以上即可視為傾斜,如果相差10%以上就必須要調整分布列;

      7、分布表和復制表的關聯查詢

      T1為hash表,T2為復制表:T1表的每一部分在各DN上分別與T2表進行連接 -> 各DN上的連接結果集在Coordinator上進行匯聚,產生最終輸出的結果集;

      8、分布表與分布表關聯查詢

      T1表和T3表都為分布表:在DN1實例上,T1表的part1部分與T3表的T1部分進行關聯 -> T3表的part2、part3、part4復制到DN1上,與T1的part1部分進行關聯 -> DN2、DN3、DN4實例操作與DN1類似 -> Coordinator節點對各DN生成的結果集進行匯聚,生成最終數據結果集;

      9、分區剪枝

      GaussDB(DWS)之數據庫對象設計

      分區表是將大表的數據分成稱為分區的許多小的子集;

      - 好處:基于時間的查詢分區枝剪可以大大提高查詢性能;數據容易管理;

      - 建議:業務表一般按照時間或地區做Range分區

      10、索引介紹

      索引是對數據庫表中一列或多列的值進行排序的一種結構;使用索引可快速訪問數據庫表中的特定信息;

      分類:行存表索引/列存表索引

      - 行存表索引 - B-Tree索引:適合數據重復度低的數據字段, 例如 身份證號碼 等字段;

      *B-Tree索引 - 優點:有B-tree索引,就像翻書目錄一樣,可以通過索引直接定位到要查詢的數據(減少了I/O操作);另外查詢性能與表中數據量無關;

      *注意:不適合鍵值重復率較高的字段上創建B-Tree索引;

      - 列存表索引 - PCK索引(Partial Cluster Key 局部聚集):一種針對列存的約束條件;一般在建表時創建,在數據導入時,根據約束,在列存存儲單元(CU)內對數據做聚集;

      *Psort索引:一種列存局部索引,對列存存儲單元(CU)內的數據,創建局部索引(MIN/MAX index稀疏索引),提高查詢效率;

      *PCK索引 - 注意:先創建后使用,之前入庫的數據不會自動根據索引聚集;

      11、如何選擇索引

      行存選擇索引注意事項:

      - 查詢條件列上創建B-tree index, 也可以創建組合索引, distinct值比較少的列不適合建立index;

      - 行存不適合建立太多B-tree index, 然后做數據導入,這樣的導入性能非常差; 一般這種情況需要禁用該表的索引,待數據導入后重建index;

      列存選擇索引注意事項

      - 查詢條件出現最多的列,例如filter條件或者join列上建立partial cluster key(約束);

      - 條件列上可以建立psort index, 也可以創建組合索引;

      EI企業智能 數據倉庫服務 GaussDB(DWS) Gauss AP 數據庫 HUAWEI CONNECT

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:您可能沒有考慮過的ERP溝通策略
      下一篇:Linux C編程第十一章 進程間通信1
      相關文章
      亚洲高清不卡视频| 亚洲老熟女@TubeumTV| 在线观看亚洲AV日韩A∨| 亚洲另类图片另类电影| 亚洲视频国产视频| 亚洲精品国产啊女成拍色拍| 亚洲男人的天堂在线播放| 久久亚洲精品成人777大小说| 亚洲AV无码第一区二区三区| 亚洲AV综合色一区二区三区| 久久精品亚洲综合一品| 亚洲AV无码成人网站久久精品大| 久久精品亚洲综合专区| 亚洲一区二区在线免费观看| 中文字幕亚洲综合久久| 亚洲欧洲国产成人精品| 国产成人精品日本亚洲直接| 一本色道久久88—综合亚洲精品| 亚洲中文字幕乱码一区| 亚洲第一成年免费网站| 日韩精品电影一区亚洲| 亚洲精品国产自在久久| 久久国产成人精品国产成人亚洲| 国产午夜亚洲精品午夜鲁丝片 | 丝袜熟女国偷自产中文字幕亚洲| 国产成人精品久久亚洲高清不卡 | 亚洲中文无韩国r级电影| 亚洲人成无码网站| 久久久久久a亚洲欧洲AV| 亚洲综合视频在线| 亚洲乱码在线视频| 亚洲精品自偷自拍无码| heyzo亚洲精品日韩| 在线亚洲午夜理论AV大片| 国产aⅴ无码专区亚洲av| 久久精品国产亚洲AV电影| 国产成人精品亚洲日本在线| 亚洲国产成人久久精品软件| 亚洲精品成人久久久| 久久亚洲国产中v天仙www | 亚洲va在线va天堂va888www|