<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
mysql分割區後每個分割區成了獨立的檔案,雖然從邏輯上還是一張表其實已經分成了多張獨立的表,從“information_schema.INNODB_SYS_TABLES”系統表可以看到每個分割區都存在獨立的TABLE_ID,由於Innodb資料和索引都是儲存在".ibd"檔案當中(從INNODB_SYS_INDEXES系統表中也可以得到每個索引都是對應各自的分割區(primary key和unique也不例外)),所以分割區表的索引也是隨著各個分割區單獨儲存。
在INNODB_SYS_INDEXES系統表中type代表索引的型別;0:一般的索引,1:(GEN_CLUST_INDEX)不存在主鍵索引的表,會自動生成一個6個位元組的標示值,2:unique索引,3:primary索引;所以當我們在分割區表中建立索引時其實也是在每個分割區中建立索引,每個分割區維護各自的索引(其實也就是local index);對於一般的索引(非主鍵或者唯一)沒什麼問題由於索引樹中只保留了索引key和主鍵key(如果存在主鍵則是主鍵的key否則就是系統自動生成的6個的key)不受分割區的影響;但是如果表中存在主鍵就不一樣了,雖然在每個分割區檔案中都存在主鍵索引但是主鍵索引需要保證全域性的唯一性就是所有分割區中的主鍵的值都必須唯一(唯一鍵也是一樣的道理),所以在建立分割區時如果表中存在主鍵或者唯一鍵那麼分割區列必須包含主鍵或者唯一鍵的部分或者全部列(全部列還好理解,部分列也可以個人猜測是為了各個分割區和主鍵建立關係),由於需要保證全域性性又要保證插入資料更新資料到具體的分割區所以就需要將分割區和主鍵建立關係,由於通過一般的索引進行查詢其它非索引欄位需要通過主鍵如果主鍵不能保證全域性唯一性的話那麼就需要去每個分割區查詢了,這樣效能可想而知。
To enforce the uniqueness we only allow mapping of each unique/primary key value to one partition.If we removed this limitation it would mean that for every insert/update we need to check in every partition to verify that it is unique. Also PK-only lookups would need to look into every partition.
索引方式:
效能依次降低
1.主鍵分割區
主鍵分割區即欄位是主鍵同時也是分割區欄位,效能最好
2. 部分主鍵+分割區索引
使用組合主鍵裡面的部分欄位作為分割區欄位,同時將分割區欄位建索引
3.分割區索引
沒有主鍵,只有分割區欄位且分割區欄位建索引
4.分割區+分割區欄位沒有索引
只建了分割區,但是分割區欄位沒有建索引
分割區是指根據一定的規則將一個大表分解成多個更小的部分,這裡的規則一般就是利用分割區規則將表進行水平切分;邏輯上沒有發生變化但實際上表已經被拆分成了多個物理物件,每個分成被劃分成了一個獨立的物件。相對於沒有分割區的當個表而言分割區的表有很多的優勢包括: 並行統計查詢、快速歸檔刪除分割區資料、分散儲存、查詢效能更佳。
mysql5.7以後查詢語句支援指定分割區例如:“ SELECT * FROM t PARTITION (p0,p1) WHERE c < 5 ”指定分割區同樣適用DELETE, INSERT, REPLACE, UPDATE, and LOAD DATA, LOAD XML.
資料庫版本:mysql5.7.12
是否支援分割區
SHOW PLUGINS ;
查詢partition的的狀態是active就代表支援分割區,如果是原始碼安裝的話在編譯的過程中要新增“-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)) ;
注意:對已有的表建立分割區之後,資料會按照分割區的定義分佈到各個分割區檔案當中
分割區系列文章:
RANGE分割區:https://www.jb51.net/article/244269.htm
COLUMN分割區:https://www.jb51.net/article/96515.htm
LIST分割區:https://www.jb51.net/article/244256.htm
HASH分割區:https://www.jb51.net/article/244277.htm
KEY分割區:https://www.jb51.net/article/244282.htm
子分割區:https://www.jb51.net/article/244294.htm
指定各分割區路徑:https://www.jb51.net/article/244296.htm
分割區索引以及分割區介紹總結:https://www.jb51.net/article/244300.htm
到此這篇關於MySQL分割區建索引以及分割區介紹總結的文章就介紹到這了,更多相關MySQL分割區建索引內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45