最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

總結(jié)MySQL的分區(qū)

 更新時(shí)間:2016年08月08日 14:51:31   投稿:daisy  
本文先是介紹了分區(qū),而后又分別說(shuō)明了怎樣判斷是否支持分區(qū)和如何刪除增加分區(qū),對(duì)分區(qū)的總結(jié)很詳細(xì),下面一起來(lái)看看吧。

前言

     分區(qū)是指根據(jù)一定的規(guī)則將一個(gè)大表分解成多個(gè)更小的部分,這里的規(guī)則一般就是利用分區(qū)規(guī)則將表進(jìn)行水平切分;邏輯上沒(méi)有發(fā)生變化但實(shí)際上表已經(jīng)被拆分成了多個(gè)物理對(duì)象,每個(gè)分成被劃分成了一個(gè)獨(dú)立的對(duì)象。相對(duì)于沒(méi)有分區(qū)的當(dāng)個(gè)表而言分區(qū)的表有很多的優(yōu)勢(shì)包括: 并發(fā)統(tǒng)計(jì)查詢(xún)、快速歸檔刪除分區(qū)數(shù)據(jù)、分散存儲(chǔ)、查詢(xún)性能更佳。

mysql5.7以后查詢(xún)語(yǔ)句支持指定分區(qū)例如:“ SELECT * FROM t PARTITION (p0,p1) WHERE c < 5 ”指定分區(qū)同樣適用DELETE, INSERT, REPLACE, UPDATE, and LOAD DATA, LOAD XML.

數(shù)據(jù)庫(kù)版本:mysql5.7.12 

是否支持分區(qū)

SHOW PLUGINS ;

查詢(xún)partition的的狀態(tài)是active就代表支持分區(qū),如果是源碼安裝的話(huà)在編譯的過(guò)程中要添加“-DWITH_PARTITION_STORAGE_ENGINE=1 \”。

注意: MERGE, CSV, or FEDERATED存儲(chǔ)引擎不支持分區(qū),同一個(gè)表所有的分區(qū)必須使用相同的存儲(chǔ)引擎,不能分區(qū)1使用MYISAM分區(qū)2又使用INNODB;不同的分區(qū)表可以是不同的存儲(chǔ)引擎。

分區(qū)介紹

目前mysql可用的分區(qū)類(lèi)型主要有以下幾種:

     RANGE分區(qū):基于一個(gè)給定的連續(xù)區(qū)間范圍,RANGE主要是基于整數(shù)的分區(qū),對(duì)于非整形的字段需要利用表達(dá)式將其轉(zhuǎn)換成整形。

     LIST分區(qū):是基于列出的枚舉值列表進(jìn)行分區(qū)。

     COLUMNS分區(qū):可以無(wú)需通過(guò)表達(dá)式進(jìn)行轉(zhuǎn)換直接對(duì)非整形字段進(jìn)行分區(qū),同時(shí)COLUMNS分區(qū)還支持多個(gè)字段組合分區(qū),只有RANGELIST存在COLUMNS分區(qū),COLUMNS是RANGE和LIST分區(qū)的升級(jí)。

      HASH分區(qū):基于給定的分區(qū)個(gè)數(shù),將數(shù)據(jù)分配到不同的分區(qū),HASH分區(qū)只能針對(duì)整數(shù)進(jìn)行HASH,對(duì)于非整形的字段只能通過(guò)表達(dá)式將其轉(zhuǎn)換成整數(shù)。

      KEY分區(qū):支持除text和BLOB之外的所有數(shù)據(jù)類(lèi)型的分區(qū),key分區(qū)可以直接基于字段做分區(qū)無(wú)需轉(zhuǎn)換成整數(shù)。 

說(shuō)明

      1.注意分區(qū)名的大小寫(xiě)敏感問(wèn)題,和關(guān)鍵字問(wèn)題。

      2.無(wú)論哪種分區(qū)類(lèi)型,要么分區(qū)表中沒(méi)有主鍵或唯一鍵,要么主鍵或唯一鍵包含在分區(qū)列里面,對(duì)于存在主鍵或者唯一鍵的表不能使用主鍵或者唯一鍵之外的字段作為分區(qū)字段。

      3.5.7以前的版本顯示分區(qū)的執(zhí)行計(jì)劃使用:explain PARTITIONS;5.7以后直接執(zhí)行:explain

      4.沒(méi)有強(qiáng)制要求分區(qū)列非空,建議分區(qū)的列為NOT NULL的列;在RANGE 分區(qū)中如果往分區(qū)列中插入NULL值會(huì)被當(dāng)作最小的值來(lái)處理,在LIST分區(qū)中NULL值必須在枚舉列表中否則插入失敗,在HASH/KEY分區(qū)中NULL值會(huì)被當(dāng)作0來(lái)處理。

      5.基于時(shí)間類(lèi)型的字段的轉(zhuǎn)換函數(shù)mysql提供了"YEAR(),MONTH(),DAY(),TO_DAYS(),TO_SECONDS(),WEEKDAY(),DAYOFYEAR()"

      6.拆分合并分區(qū)后會(huì)導(dǎo)致修改的分區(qū)的統(tǒng)計(jì)信息失效,沒(méi)有修改的分區(qū)的統(tǒng)計(jì)信息還在,不影響新插入的值加入到統(tǒng)計(jì)信息;這時(shí)需要對(duì)表執(zhí)行Analyze操作.

      7.針對(duì)非整形字段進(jìn)行RANG\LIST分區(qū)建議使用COLUMNS分區(qū)。 

刪除增加分區(qū)

在每個(gè)分區(qū)內(nèi)容介紹中詳細(xì)介紹了每種分區(qū)的用法,但是都是介紹在創(chuàng)建表的時(shí)候創(chuàng)建分區(qū)和修改刪除分區(qū)單個(gè),也可以在一張已經(jīng)存在的表中加入分區(qū),可以一次性刪除整個(gè)表的分區(qū)。

1.移除表的分區(qū)

ALTER TABLE tablename
REMOVE PARTITIONING ;

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

2.對(duì)已經(jīng)存在記錄的表創(chuàng)建分區(qū),以增加range分區(qū)為例,和創(chuàng)建表建分區(qū)的語(yǔ)法一樣。

ALTER TABLE `tb_partition`.`tb_varchar` 
PARTITION BY RANGE(id) PARTITIONS 3( PARTITION part0 VALUES LESS THAN (5000), PARTITION part1 VALUES LESS THAN (10000), PARTITION part2 VALUES LESS THAN (MAXVALUE)) ;

注意:對(duì)已有的表創(chuàng)建分區(qū)之后,數(shù)據(jù)會(huì)按照分區(qū)的定義分布到各個(gè)分區(qū)文件當(dāng)中

總結(jié)

以上就是MySQL的分區(qū)介紹總結(jié)的全部?jī)?nèi)容,希望本文對(duì)大家使用mysql的時(shí)候有所幫助。

相關(guān)文章

  • 一文搞懂MySQL元數(shù)據(jù)鎖(MDL)

    一文搞懂MySQL元數(shù)據(jù)鎖(MDL)

    這篇文章主要為大家詳細(xì)介紹了MySQL中元數(shù)據(jù)鎖(MDL)的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定的借鑒價(jià)值,需要的可以參考一下
    2022-09-09
  • 一鍵安裝mysql5.7及密碼策略修改方法

    一鍵安裝mysql5.7及密碼策略修改方法

    這篇文章主要介紹了一鍵安裝mysql5.7及密碼策略修改方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Mysql8.4數(shù)據(jù)庫(kù)安裝新建用戶(hù)和庫(kù)表

    Mysql8.4數(shù)據(jù)庫(kù)安裝新建用戶(hù)和庫(kù)表

    MySQL是最常用的數(shù)據(jù)庫(kù),本文主要介紹了Mysql8.4數(shù)據(jù)庫(kù)安裝新建用戶(hù)和庫(kù)表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • mysql Out of memory (Needed 16777224 bytes)的錯(cuò)誤解決

    mysql Out of memory (Needed 16777224 bytes)的錯(cuò)誤解決

    至于我改的這幾個(gè)值是不是正確的解決方法,目前還不知道。先貼出來(lái)
    2012-07-07
  • Mysql查看數(shù)據(jù)庫(kù)時(shí)區(qū)并設(shè)置時(shí)區(qū)的方法

    Mysql查看數(shù)據(jù)庫(kù)時(shí)區(qū)并設(shè)置時(shí)區(qū)的方法

    這篇文章主要介紹了Mysql查看數(shù)據(jù)庫(kù)時(shí)區(qū)并設(shè)置時(shí)區(qū)的方法,設(shè)置時(shí)區(qū)的方式可以通過(guò)mysql命令行模式下動(dòng)態(tài)修改以及通過(guò)修改配置文件來(lái)修改時(shí)區(qū),需要的朋友可以參考下
    2024-02-02
  • MySQL 數(shù)據(jù)類(lèi)型 大全

    MySQL 數(shù)據(jù)類(lèi)型 大全

    mysql下的一些數(shù)據(jù)類(lèi)型,后面附有類(lèi)型的說(shuō)明。
    2009-04-04
  • Mysql8.0遞歸查詢(xún)的簡(jiǎn)單用法示例

    Mysql8.0遞歸查詢(xún)的簡(jiǎn)單用法示例

    在項(xiàng)目中會(huì)遇到同一個(gè)表中保存著父子關(guān)系的數(shù)據(jù),最常見(jiàn)的就是處理樹(shù)形結(jié)構(gòu)資源,這篇文章主要給大家介紹了關(guān)于Mysql8.0遞歸查詢(xún)的簡(jiǎn)單用法,需要的朋友可以參考下
    2021-08-08
  • mysql中的utf8與utf8mb4存儲(chǔ)及區(qū)別

    mysql中的utf8與utf8mb4存儲(chǔ)及區(qū)別

    本文主要介紹了mysql中的utf8與utf8mb4存儲(chǔ)及區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • MySQL可以使用斜線(xiàn)來(lái)當(dāng)字段的名字

    MySQL可以使用斜線(xiàn)來(lái)當(dāng)字段的名字

    無(wú)意中發(fā)現(xiàn)MySQL可以使用斜線(xiàn)來(lái)當(dāng)字段的名字,下面有個(gè)示例,需要的朋友可以參考下
    2014-03-03
  • 用一條mysql語(yǔ)句插入多條數(shù)據(jù)

    用一條mysql語(yǔ)句插入多條數(shù)據(jù)

    這篇文章主要介紹了在mysql中使用一條sql語(yǔ)句插入多條數(shù)據(jù),效率非常高,但是原理其實(shí)很簡(jiǎn)單,希望對(duì)大家有所幫助
    2014-09-09

最新評(píng)論

抚宁县| 肥东县| 海伦市| 乳山市| 周口市| 东兰县| 浦城县| 福安市| 怀仁县| 沙湾县| 江津市| 郎溪县| 宁波市| 高平市| 芦山县| 绥芬河市| 右玉县| 小金县| 镇赉县| 兴义市| 湖州市| 合阳县| 鹰潭市| 祥云县| 都昌县| 阿坝县| 顺义区| 青岛市| 洪雅县| 满城县| 潼南县| 灵武市| 南和县| 金寨县| 巩留县| 邯郸市| 海林市| 灵宝市| 綦江县| 云南省| 黄大仙区|