前言
分區是指根據一定的規則將一個大表分解成多個較小的部分,這裡的規則一般就是利用分區規則將表進行水平切分;邏輯上沒有發生變化但實際上表已經被拆分成了多個物理對象,每個分成被分割成一個獨立的對象了。相對於沒有分區的當個表而言分區的表有很多的優點包括: 並發統計查詢、快速歸檔刪除分區資料、分散存儲、查詢效能更佳。
mysql5.7以後查詢語句支援指定分區例如:「 SELECT * FROM t PARTITION (p0,p1) WHERE c 」指定分區同樣適用<code>DELETE, INSERT, REPLACE, UPDATE, and LOADDATA, .
資料庫版本:mysql5.7.12
是否支援分區
SHOW PLUGINS ;
-DWITH_PARTITION_STORAGE_ENGINE=1 」。
注意: MERGE, CSV, or FEDERATED儲存引擎不支援分區,同一個表所有的分區必須使用相同的儲存引擎,不能分區1使用MYISAM分區2又使用INNODB;不同的分區表可以是不同的儲存引擎。
分區介紹
目前mysql可用的分割區類型主要有以下幾種:
RANGE分區:基於一個給定的連續區間範圍,RANGE主要是基於整數的分區,對於非整形的字段需要利用表達式將其轉換成整形。
LIST分區:是根據所列的枚舉值清單進行分區。
COLUMNS分區:可以無需透過表達式進行轉換直接對非整形字段進行分區,同時COLUMNS分區也支援多個字段組合分區,只有RANGELIST存在COLUMNS分區,COLUMNS是RANGE和LIST分區的升級。
HASH分區:基於給定的分區個數,將資料分配到不同的分區,HASH分區只能針對整數進行HASH,對於非整形的字段只能透過表達式將其轉換成整數。
KEY分區:支援除text和BLOB之外的所有資料類型的分區,key分區可以直接基於字段做分區無需轉換成整數。
說明
1.注意分區名的大小寫敏感度問題,及關鍵字問題。2.無論哪種分區類型,要麼分區表中沒有主鍵或唯一鍵,要麼主鍵或唯一鍵包含在分區列裡面,對於存在主鍵或唯一鍵的表不能使用主鍵或唯一鍵之外的欄位作為分區字段。
3.5.7先前的版本顯示分區的執行計劃使用:explain PARTITIONS;5.7以後直接執行:explain
4.沒有強制要求分區列非空,建議分區的列為NOT NULL的列;在RANGE 分區中如果往分區列中插入NULL值會被當作最小的值來處理,在LIST分區中NULL值必須在枚舉清單中否則插入失敗,在HASH/KEY分區中NULL值會被當作0來處理。
5.基於時間類型的欄位的轉換函數mysql提供了"YEAR(),MONTH(),DAY(),TO_DAYS(),TO_SECONDS(),WEEKDAY(),DAYOFYEAR()"
6.拆分合併分區後會導致修改的分區的統計信息失效,沒有修改的分區的統計信息還在,不影響新插入的值加入到統計信息;這時需要對錶執行Analyze操作.
7.針對非整形字段進行RANGLIST分區建議使用COLUMNS分區。
刪除增加分割區
在每個分區內容介紹中詳細介紹了每種分區的用法,但是都是介紹在創建表的時候創建分區和修改刪除分區單個,也可以在一張已經存在的表中加入分區,可以一次性刪除整個表的分割區。
1.移除表的分區
ALTER TABLE tablename REMOVE PARTITIONING ;
注意:使用remove移除分區是僅移除分區的定義,並不會刪除資料和drop PARTITION不一樣,後者會連同資料一起刪除
2.對已經存在記錄的表建立分區,以增加range分區為例,和建立表建分區的語法一樣。
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)) ;
注意:對現有的表格建立分區之後,資料會依照分區的定義分佈到各個分區檔案當中
總結
以上就是MySQL的分區介紹總結的全部內容,希望本文對大家使用mysql的時候有幫助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),