資料庫之分割槽表

2021-08-15 15:42:58 字數 1099 閱讀 8852

如果一張表的資料量太大的話,那麼myd,myi就會變得很大,查詢資料就會變得很慢,這個時候我們可以利用mysql的分割槽功能,在物理上將這一張表對應的三個檔案,分割成許多個小塊,這樣呢,我們查詢一條資料時,就不用全部查詢了,只要知道這條資料在哪一塊,然後在那一塊找就行了。如果表的資料太大,可能乙個c盤放不下,這個時候,我們可以把資料分配到不同的磁碟裡去。

通俗的講表分割槽是將一大表,根據條件分割成若干個小表,如:某使用者表的記錄超過了600萬條,那麼就可以根據入庫日期將表分割槽,也可以根據所在地將表分割槽,也可以根據其他的條件分割槽。

分割槽表,就是對錶進行分割槽,通常資料庫會把不同的分割槽物理上分隔離開進行管理,這樣做有很多優點:

1:可以提高查詢的效率,查詢的時候如果對用作分割槽的關鍵字來進行過濾的話(在where中),那麼就可以避免對全表進行掃瞄,節省磁碟io。比如資料庫中儲存了近3年的資料,按月進行了分割槽,如果只查詢某乙個月的資料,就可以跳過35個不相關的分割槽,只要掃瞄乙個分割槽就可以了。

2:可以提高刪除的效率。比如經常見到的需要對過期資料進行刪除時,如果用delete的話,那麼要掃瞄全表才能完成這個操作。而如果表按時間進行了分割槽,那麼只要把過期的分割槽drop掉就可以了,效率比delete高的多

create table t1(i int)partitioned by (x int,y string);

這裡是按照x,y來進行分割槽的,他們既可以是本來就存在於源資料中的某兩個字段,也可以是兩個從源資料中計算得到的用於分割槽的字段。

比如

insert

into t1 partition(x=10,y='a') select c1 from some_other_table;

insert

into t1 partition(x,y='b') select c1,c2 from some_other_table;

第一句話是把t1=c1插入到x=10,y=』a』這個分割槽中,第二句話是把t1=c1插入到x=c2、y=』b』的分割槽中。

分割槽可以極大的增加資料查詢、刪除的效率,是個非常好的東西,只是分割槽要在建表的時候預先設計好。通常資料庫都不支援建表後增加分割槽,能做到的方法基本也是新建一張分割槽表,然後把原表中的資料複製過去。

資料庫 分割槽表

步驟 先建立分割槽函式,在建立分割槽方案,最後使用分割槽方案建立表 首先熟悉一下建立分割槽函式 1 在int列上建立左側分割槽函式,下列分割槽函式將表分為四個分割槽。2 在int列上建立右側分割槽函式 3 在datatime列上建立右側分割槽函式,將資料表分為12個分割槽,每個分割槽對應dateti...

Postgresql之分割槽表

參考 建立步驟 注意 以下針對10.0版本之前的用法,新版本見 1 建立主表。不用為該錶定義任何檢查限制,除非需要將該限制應用到所有的分割槽表中。同樣也無需為該錶建立任何索引和唯一限制。create table almart date key date,hour key smallint,clien...

資料庫分割槽表關聯

場景 現實業務中有兩個表關係比較緊密,而且資料量比較大的時候,需要對兩個表都進行分割槽,並能很好的發揮分表作用 注意 資料庫表最好是在建立的時候就進行分割槽,不能對已經建立的普通表 堆表 再進行分割槽變為分割槽表,否則轉換起來比較麻煩。create table ocs collect people ...