欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL分區(qū)之子分區(qū)詳解

 更新時間:2022年04月13日 10:46:57   作者:pursuer.chen  
子分區(qū)(subpartition)是分區(qū)表中對每個分區(qū)的再次分割,又被稱為復(fù)合分區(qū),下面這篇文章主要給大家介紹了關(guān)于MySQL分區(qū)之子分區(qū)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

介紹

子分區(qū)其實是對每個分區(qū)表的每個分區(qū)進行再次分隔,目前只有RANGE和LIST分區(qū)的表可以再進行子分區(qū),子分區(qū)只能是HASH或者KEY分區(qū)。子分區(qū)可以將原本的數(shù)據(jù)進行再次的分區(qū)劃分。

一、創(chuàng)建子分區(qū)

子分區(qū)由兩種創(chuàng)建方法,一種是不定義每個子分區(qū)子分區(qū)的名字和路徑由分區(qū)決定,二是定義每個子分區(qū)的分區(qū)名和各自的路徑

1.不定義每個子分區(qū)

CREATE TABLE tb_sub (id INT, purchased DATE)
    PARTITION BY RANGE( YEAR(purchased) )
    SUBPARTITION BY HASH( TO_DAYS(purchased) )
    SUBPARTITIONS 2 (
        PARTITION p0 VALUES LESS THAN (1990),
        PARTITION p1 VALUES LESS THAN (2000),
        PARTITION p2 VALUES LESS THAN MAXVALUE
    );
SELECT PARTITION_NAME,PARTITION_METHOD,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,SUBPARTITION_NAME,SUBPARTITION_METHOD,SUBPARTITION_EXPRESSION 
FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME='tb_sub';

2.定義每個子分區(qū)

定義子分區(qū)可以為每個子分區(qū)定義具體的分區(qū)名和分區(qū)路徑

CREATE TABLE tb_sub_ev (id INT, purchased DATE)
    PARTITION BY RANGE( YEAR(purchased) )
    SUBPARTITION BY HASH( TO_DAYS(purchased) ) (
        PARTITION p0 VALUES LESS THAN (1990) (
            SUBPARTITION s0,
            SUBPARTITION s1
        ),
        PARTITION p1 VALUES LESS THAN (2000) (
            SUBPARTITION s2,
            SUBPARTITION s3
        ),
        PARTITION p2 VALUES LESS THAN MAXVALUE (
            SUBPARTITION s4,
            SUBPARTITION s5
        )
    );

3.測試數(shù)據(jù)

INSERT INTO tb_sub_ev() VALUES(1,'1989-01-01'),(2,'1989-03-19'),(3,'1989-04-19');

當(dāng)往里面插入三條記錄時,其中‘1989-01-01’和‘1989-04-19’存儲在p0_s0分區(qū)中,‘1989-03-19’存儲在p0_s1當(dāng)中

二、分區(qū)管理

分區(qū)管理和RANGE、LIST的分區(qū)管理是一樣的

1.合并分區(qū)

將p0,p1兩個分區(qū)合并

ALTER TABLE tb_sub_ev REORGANIZE PARTITION p0,p1 INTO (
    PARTITION m1 VALUES LESS THAN (2000)
    ( SUBPARTITION n0,
      SUBPARTITION n1
     ) 
    
);

注意:合并分區(qū)的子分區(qū)也必須是兩個,這點需要理解,因為必須和創(chuàng)建分區(qū)時每個分區(qū)只有兩個子分區(qū)保持一致,合并分區(qū)不會造成數(shù)據(jù)的丟失。

2.拆分分區(qū)

ALTER TABLE tb_sub_ev REORGANIZE PARTITION m1 INTO (
     PARTITION p0 VALUES LESS THAN (1990) (
            SUBPARTITION s0,
            SUBPARTITION s1
        ),
        PARTITION p1 VALUES LESS THAN (2000) (
            SUBPARTITION s2,
            SUBPARTITION s3
        )
    
);

同樣,拆分分區(qū)也必須保證每個分區(qū)是兩個子分區(qū)。

3.刪除分區(qū)

ALTER TABLE  tb_sub_ev DROP PARTITION P0;

注意:由于分區(qū)是RANGE和LIST分區(qū),所以刪除分區(qū)也是同RANGE和LIST分區(qū)一樣,這里只能對每個分區(qū)進行刪除,不能針對每個子分區(qū)進行刪除操作,刪除分區(qū)后子分區(qū)連同數(shù)據(jù)一并被刪除。

三、錯誤的子分區(qū)創(chuàng)建

1.要不不定義各個子分區(qū)要不就每個都需要定義

CREATE TABLE tb_sub_ev_nex (id INT, purchased DATE)
    PARTITION BY RANGE( YEAR(purchased) )
    SUBPARTITION BY HASH( TO_DAYS(purchased) ) (
        PARTITION p0 VALUES LESS THAN (1990) (
            SUBPARTITION s0,
            SUBPARTITION s1
        ),
        PARTITION p1 VALUES LESS THAN (2000),
        PARTITION p2 VALUES LESS THAN MAXVALUE (
            SUBPARTITION s4,
            SUBPARTITION s5
        )
    );

這里由于分區(qū)p1沒有定義子分區(qū),所以創(chuàng)建分區(qū)失敗

四、移除表的分區(qū)

ALTER TABLE tablename
REMOVE PARTITIONING ;

注意:使用remove移除分區(qū)是僅僅移除分區(qū)的定義,并不會刪除數(shù)據(jù)和drop PARTITION不一樣,后者會連同數(shù)據(jù)一起刪除

分區(qū)系列文章:

RANGE分區(qū):http://www.dbjr.com.cn/article/244269.htm

COLUMN分區(qū):http://www.dbjr.com.cn/article/96515.htm

LIST分區(qū):http://www.dbjr.com.cn/article/244256.htm

HASH分區(qū):http://www.dbjr.com.cn/article/244277.htm

KEY分區(qū):http://www.dbjr.com.cn/article/244282.htm

子分區(qū):http://www.dbjr.com.cn/article/244294.htm

指定各分區(qū)路徑:http://www.dbjr.com.cn/article/244296.htm

分區(qū)索引以及分區(qū)介紹總結(jié):http://www.dbjr.com.cn/article/244300.htm

總結(jié)

子分區(qū)的好處是可以對分區(qū)的數(shù)據(jù)進行再分,這樣數(shù)據(jù)就更加的分散,同時還可以對每個子分區(qū)定義各自的存儲路徑,這部分內(nèi)容在指定各分區(qū)路徑的下一篇文章中單獨進行講解。

到此這篇關(guān)于MySQL分區(qū)之子分區(qū)的文章就介紹到這了,更多相關(guān)MySQL 子分區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中的最左匹配原則

    MySQL中的最左匹配原則

    這篇文章主要介紹了MySQL中的最左匹配原則,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 快速學(xué)習(xí)MySQL基礎(chǔ)知識

    快速學(xué)習(xí)MySQL基礎(chǔ)知識

    這篇文章主要介紹了MySQL基礎(chǔ)知識的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 數(shù)據(jù)庫設(shè)計工具MySQL?Workbench使用教程(超級詳細(xì)!)

    數(shù)據(jù)庫設(shè)計工具MySQL?Workbench使用教程(超級詳細(xì)!)

    MySQL?Workbench為數(shù)據(jù)庫管理員、程序開發(fā)者和系統(tǒng)規(guī)劃師提供可視化的Sql開發(fā)、數(shù)據(jù)庫建模、以及數(shù)據(jù)庫管理功能,下面這篇文章主要給大家介紹了關(guān)于MySQL設(shè)計工具Workbench使用的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • InnoDB解決幻讀的方法詳解

    InnoDB解決幻讀的方法詳解

    這篇文章主要介紹了InnoDB解決幻讀的方法詳解的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • MYSQL表中某字段所有值大小寫轉(zhuǎn)換

    MYSQL表中某字段所有值大小寫轉(zhuǎn)換

    這篇文章主要為大家介紹了MYSQL表中某字段所有值大小寫轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • MySQL主從同步機制與同步延時問題追查過程

    MySQL主從同步機制與同步延時問題追查過程

    這篇文章主要給大家介紹了關(guān)于MySQL主從同步機制與同步延時問題追查的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Mysql 5.7.9 shutdown 語法實例詳解

    Mysql 5.7.9 shutdown 語法實例詳解

    之前如果想關(guān)閉一個mysql數(shù)據(jù)庫可以通過kill 命令、mysqladmin shutdown 、service mysqld stop 等這樣的方式。然而在mysql-5.7.9之后mysql終于提供了SQL接口的shutdown語法啦
    2017-06-06
  • MySQL 元數(shù)據(jù)查看及實例代碼

    MySQL 元數(shù)據(jù)查看及實例代碼

    這篇文章主要介紹了MySQL 元數(shù)據(jù)查看及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • sqoop export導(dǎo)出 map100% reduce0% 卡住的多種原因及解決

    sqoop export導(dǎo)出 map100% reduce0% 卡住的多種原因及解決

    這篇文章主要介紹了sqoop export導(dǎo)出 map100% reduce0% 卡住的多種原因及解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Linux下mysql 5.6.17 安裝圖文教程

    Linux下mysql 5.6.17 安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了Linux下mysql 5.6.17 安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論