分割槽表的使用記錄
使用分割槽表的產生原因
由於線上表歷史資料太多,準備刪除清理
簡單的使用delete語句進行刪除,結果因為備庫硬碟空間不夠,無法刪除。
get經驗,對於資料量巨大的表刪除操作
1、delete產生的日誌太大,如果表都不需要應使用drop命令
2、如果需要保留資料,先insert 到新建的表中,然後對錶進行重新命名操作
3、根據自身業務考慮使用資料庫分割槽機制,對於不要的資料可以直接刪除對應分割槽
了解分割槽
分割槽表分為四類:1、範圍分割槽表 2、列表分割槽表 3、雜湊分割槽表 4、組合分割槽表
了解以後準備對錶進行按日期分割槽,但是發現設定分割槽的時候 必須有values less then子句,那麼如果想設定的未來的時間分割槽,怎麼辦?
查了相關資料得到如下資訊
1、range 範圍分割槽介紹
說明:針對記錄欄位的值在某個範圍。
規則:(1)、每乙個分割槽都必須有乙個values less then子句,它指定了乙個不包括在該分割槽中的上限值。
分割槽鍵的任何值等於或者大於這個上限值的記錄都會被加入到下乙個高一些的分割槽中。
(2)、所有分割槽,除了第乙個,都會有乙個隱式的下限值,這個值就是此分割槽的前乙個分割槽的上限值。
(3)、在最高的分割槽中,maxvalue被定義。maxvalue代表了乙個不確定的值。這個值高於其它分割槽中的任何分割槽鍵的值,
也可以理解為高於任何分割槽中指定的value less then的值,同時包括空值。若不新增maxvalue的分割槽插入數值一旦超過設定的最大上限會報錯。
2、oracle 11g 支援自動分割槽,不過得在建立表時就設定好分割槽。
自動分割槽關鍵字是numtoyminterval和numtodsinterval
區別是:
numtodsinterval(,) ,x 是乙個數字,c 是乙個字串。
把 x 轉為 interval day to second 資料型別。
常用的單位有 (『day』,『hour』,『minute』,『second』)。
numtoyminterval (,)
將 x 轉為 interval year to month 資料型別。
常用的單位有 (『year』,『month』)。
例項 :每個月自動建立分割槽
create table test_table
(id varchar2(24 char) not null,
clear_date date
)partition by range (clear_date) interval (numtoyminterval(1, 『month』))
( partition part01 values less than (to_date(『2020-08-01』, 『yyyy-mm-dd』)) );
建立索引
當查詢經常跨分割槽查,則應該使用全域性索引,因為這是全域性索引比分區索引效率高。
當查詢在乙個分割槽裡查詢時,則應該使用 local 索引,因為本地索引比全域性索引效率高。
目前線上查詢等無影響,如有相關問題,後續繼續記錄
Oracle分割槽表
1 範圍分割槽 range create table range part tab id number,deal date date,area code number,contents varchar2 4000 partition by range deal date partition p201...
Oracle 分割槽表
我們知道在資料庫中,當一張表的資料量增多時,資料的查詢就會變慢,從而影響應用程式的效能。這時我們應該考慮將表分割槽,表分割槽後在邏輯上仍然屬於一張表,只是在物理上儲存在多個檔案中。範圍分割槽將資料基於範圍對映到每乙個分割槽,這個範圍是你在建立分割槽時指定的分割槽鍵決定的。這種分割槽方式是最為常用的,...
oracle表分割槽設計 ORACLE 分割槽表的設計
分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...