国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Oracle2PG系列之分區索引與全局索引

IT那活兒 / 1633人閱讀
Oracle2PG系列之分區索引與全局索引

點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!





前  言



最近碰到個案例,某Oracle數據庫遷移到PG的過程中,發現部分表的分區索引以及分區表的全局索引在PG中不支持,具體如下文所示。





分區索引



由于Oracle環境的軟件設計問題,開發商使用了大量的序列,而這些序列字段往往也是標志性查詢條件,DBA通常都會為這種序列字段創建索引,這里指btree索引。
由于序列值的遞增性,導致總是btree索引頁的最右側頁進行分裂,在入庫高峰期這個索引分裂往往就是系統瓶頸,優化方式也較為簡單,將該字段建立倒序、hash分區索引等等,這也是Oracle環境中的分區索引較多的原因,網上案例較多這里就不再展開。
Oracle分區索引示例:
圖中創建tb_idxpart的普通表,i1字段進行hash打散到4個分區索引中,語法也相對簡單。
筆者曾遇到過一個單表800G的索引失效案例,當時由于資源限制,創建普通索引耗時過長影響范圍大,將該索引改造成分區索引后,逐個分區rebuild恢復正常。
示例如下:
分區索引能縮短索引創建時間、降低索引層數控制單分區容量以及降低爭用等等好處,是一個很不錯的功能,在最新的PG14中目前還不支持普通表的分區索引
PG語法樹參考:




全局索引



一般來說,我們在使用分區表時,都建議將索引同樣建成local分區索引,上文說的普通表的分區索引好處這里同樣有效,有一種情況需要注意,比如電話信息表,以城市作為分區鍵,其中電話號碼字段為主鍵或唯一鍵以保證電話號碼生成的唯一性。如下:
圖中當我們在城市340中生成18299999999后,再次在其它城市生成18299999999時, 提示號碼已存在無法生成。而在PG數據庫中,其只支持聯合分區鍵的主鍵或唯一鍵,具體如下:
可以看到創建唯一索引時,提示必須包含分區鍵,按提示聯合分區鍵進行唯一索引創建。
測試在不同的城市生成了相同的電話號碼,這肯定是不合邏輯的。
原因是帶分區鍵的聯合唯一鍵或主鍵已經不是實際場景中需要的唯一鍵或主鍵,也就背離了約束初衷,目前最新的PG14中該問題還無法解決,需要在應用程序的邏輯層中解決,本文就到此為止。




本文作者:胡 杰

本文來源:IT那活兒(上海新炬王翦團隊)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129600.html

相關文章

  • 關于MySQL的知識點面試常見問題都在這里

    摘要:但是這將嚴重影響程序的性能。垂直分區的優點在于可以使得行數據變小,在查詢時減少讀取的數,減少次數。此外,垂直分區可以簡化表的結構,易于維護。垂直分區的缺點在于主鍵會出現冗余,需要管理冗余列,并會引起操作,可以通過在應用層進行來解決。 Java面試通關手冊(Java學習指南,歡迎Star,會一直完善下去,歡迎建議和指導):https://github.com/Snailclimb/Jav...

    LeoHsiun 評論0 收藏0
  • Amazon DynamoDB 入門5:索引創建及管理

    摘要:上一節我們介紹了項目的添加修改獲取刪除操作,這一節將介紹索引的創建及管理。創建索引在關系數據庫中,索引是一個數據結構,可對表中的不同的列執行快速查詢。但是,全局二級索引僅支持最終一致性。無論使用的是關系數據庫還是,在創建索引時都應謹慎。 上一節我們介紹了項目的添加、修改、獲取、刪除(CRUD)操作,這一節將介紹索引的創建及管理。 創建索引 在關系數據庫中,索引是一個數據結構,可對表中的...

    bitkylin 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<