电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL高級特性——數據表分區的概念及機制詳解

瀏覽:5日期:2023-10-03 08:07:08
目錄分區機制SELECT 查詢INSERT 操作DELETE 操作UPDATE 操作分區的類型

MySQL 的分區的實現方式是對數據表進行一層包裝,這意味著索引實際是基于每個分區定義的,而不是整張表。這個特性和 Oracle 是不同的,在 Oracle 中的索引和數據表可以使用更靈活和更復雜的方式進行分區。​

MySQL 的分區通過定義 PATITION BY 子句的條件來決定數據行所屬分區的歸屬。在執行查詢的時候,查詢優化器會區分所在分區,這意味著查詢不會檢查全部分區,而僅僅是那些包含索要查詢數據所在的分區。​

分區的主要目的是對數據表進行大致形式的索引和聚集。這樣可以減少數據表的過大范圍的訪問,并可以將相關的數據行臨近存儲。分區的收益是顯著的,尤其是對于下面的場景:

當數據表過大導致內存空間難以承載時,或者一張數據表中有很多歷史數據以及熱區行。 分區數據相比為分區數據更容易維護。例如,通過刪除整個分區很容易將舊的數據清除,同時對于單個分區也可以很方便地進行優化、檢查和修復操作。 分區數據在物理上可以分布存儲,這使得服務器可以更高效地使用多個硬盤驅動器。 可以使用分區避免某些工作負荷的瓶頸。 對于數據備份而言,可以單獨備份或恢復單個分區,這對于大的數據集來說十分有益。

MySQL 的分區實現細節十分復雜,弄清楚是很難的,我們只需要關注它的性能即可。如果想進一步了解,可以翻閱 MySQL 手冊中關于分區的部分。有了分區后,也帶來了其他問題以及限制:

創建表和更改表的命令更為復雜。 每張表最多只能有1024個分區。 在 MySQL 5.1版本中,分區表達式必須是整數或者返回一個整數;在 MySQL 5.5以后,在某些情況下可以使用列進行分區。 任主鍵或唯一索引都必須包含分區表達式中的全部列。 不可以使用外鍵約束。 分區機制

如前所述,分區表實際有多個隱藏的物理存儲表,這通過句柄對象呈現。我們不能直接訪問分區。通常,每個分區是通過存儲引擎管理的(因此要求所有分區的存儲引擎相同),而數據表中的索引實際上是隱藏的物理存儲表的索引。從存儲引擎的角度來看,分區也是數據表。存儲引擎實際并不知道數據表是獨立的還是一個大的數據表的一個分區。對于分區表的操作通過如下的邏輯操作實現:

SELECT 查詢

當對分區表進行查詢時,分區層會打開和鎖定全部的隱藏分區,查詢優化器會決定那些隱藏分區可以忽略,然后分區層通過句柄 API 調用管理分區的存儲引擎獲取查詢結果。

INSERT 操作

當插入一行數據時,分區層會打開和鎖定全部分區,然后決定那個分區存儲當前的數據行,并將該數據行存入對應分區。

DELETE 操作

刪除一行數據時,分區層會打開和鎖定全部分區,檢查哪個分區包含該行數據,再將刪除請求發送到該分區。

UPDATE 操作

修改一行數據時,分區層打開和鎖定所有分區,檢查哪個分區包含該行數據,并獲取該行數據進行修改,然后再確定哪個分區應當包含新的數據行,并把插入請求發送到該分區,同時發送刪除請求到舊的分區。上面的有些操作支持分區過濾(即忽略無關的分區)。例如,刪除一行時,服務器需要首先定位數據行位置。如果在 WHERE 條件中指定了匹配的分區表達式條件,服務器可以忽略掉不包含該行的分區。對于 UPDATE 操作也是類似,而 INSERT 操作本身就是如此,服務器會只查找需要插入的一個分區,而不是全部。

雖然分區層打開和鎖定了全部分區,但并不意味著分區會保持鎖定。像 InnoDB 的存儲引擎,可以支持行級別的鎖定,會只是分區層解除分區的鎖定。這個加鎖和解鎖的過程和普通的 InnoDB 數據表的鎖定過程類似。

分區的類型

MySQL 支持幾種類型的分區,最常用的類型是范圍分區——也就是針對某些列的的值或表達式按不同的范圍進行分區。例如,下面的語句就是根據年份將銷售數據分到不同的分區中:

CREATE TABLE sales ( order_date DATETIME NOT NULL --其他列定義) ENGINE=InnoDB PARTITION BY RANGE(YEAR(order_date)) ( PARTITION p_2018 VALUES LESS THAN (2018), PARTITION p_2019 VALUES LESS THAN (2019), PARTITION p_2020 VALUES LESS THAN (2020), PARTITION p_other VALUES LESS THAN MAXVALUE);

可以在分區子句中使用多種函數。最主要的要求是必須返回一個非常量的,確定的整數。在上面的例子中使用的是 YEAR 函數,也可以使用其他函數,例如 TO_DAYS()。使用時間間隔進行分區是基于日期數據的常用方式。​

MySQL 也支持鍵,哈希以及列表的分區方法,有些還支持子分區(實際很少用)。在 MySQL 5.5以后,可u一使用 RANGE COLUMNS 的分區類型直接按基于日期的列進行分區,而不需要使用函數將日期轉換為整數。 其他常見的分區技巧包括:

使用鍵進行分區以減少 InnoDB 的互斥量的競爭; 可以使用取余計算的方法來循環構建范圍的分區,例如如果只需要保持最近幾天的數據,可以通過對日期對7取余,或者使用所在的周天數進行分區。 假設數據表沒有自增的主鍵,但是也想對聚集在一起的熱區數據分區。由于時間戳不在主鍵里,也無法使用時間戳分區。這時候可以使用 HASH(id DIV 1000000),這會在每1000000行數據進行分區。這使得無需更改主鍵也能完成我們要的效果。同時這樣還有附加的效果。那就是我們無需創建分區的常量去保留新的數據。

以上就是MySQL高級特性——數據表分區的概念及機制詳解的詳細內容,更多關于MySQL高級特性 數據表分區的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 铝板冲孔网,不锈钢冲孔网,圆孔冲孔网板,鳄鱼嘴-鱼眼防滑板,盾构走道板-江拓数控冲孔网厂-河北江拓丝网有限公司 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 识禅_对禅的了解,从这里开始 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 驾驶式洗地机/扫地机_全自动洗地机_工业洗地机_荣事达工厂官网 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 数字展示在线_数字展示行业门户网站 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 重庆波纹管|重庆钢带管|重庆塑钢管|重庆联进管道有限公司 | 精密光学实验平台-红外粉末压片机模具-天津博君 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 黄石妇科医院_黄石东方女子医院_黄石东方妇产医院怎么样 | 温室大棚建设|水肥一体化|物联网系统 | 混合生育酚_醋酸生育酚粉_琥珀酸生育酚-山东新元素生物科技 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 真空上料机(一种真空输送机)-百科 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 高中学习网-高考生信息学习必备平台 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 牛奶检测仪-乳成分分析仪-北京海谊| 马尔表面粗糙度仪-MAHR-T500Hommel-Mitutoyo粗糙度仪-笃挚仪器 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 济南电缆桥架|山东桥架-济南航丰实业有限公司 |