黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 MySQL分區表原理詳解

MySQL分區表原理詳解

更新時間:2021-01-12 17:45:23 來源:動力節點 瀏覽1442次

分區表是將大表的數據分成稱為分區的許多小的子集,分區是將一個表的數據按照某種方式,比如按照時間上的月份,分成多個較小的,更容易管理的部分,但是邏輯上仍是一個表。由于在MySQL數據庫中,我們對MySQL分區表的理解十分晦澀,為了更好地理解MySQL分區表,本文我們來詳細講一講MySQL分區表原理

 

如前所述,分區表由多個相關的底層表實現,這些底層表也是由句柄對象(Handler object)標識,所以可以直接訪問各個分區。分區有利于管理非常大的表,它采用分而治之的邏輯,分區引入了分區鍵的概念,分區鍵用于根據某個區間值(或者范圍值)、特定值列表或者hash函數值執行數據的聚集,讓數據根據規則分布在不同的分區中,讓一個大對象變成一些小對象。

 

存儲引擎管理分區的各個底層表和管理普通表一樣(所有的底層表都必須使用相同的存儲引擎),分區表的索引只是在各個底層表上各自加上一個完全相同的索引

從存儲引擎的角度來看,底層表和一個普通表沒有任何不同,存儲引擎也無須直到這是一個普通表還是一個分區表的一部分。

 

我們先來看看MySQL分區表上的操作:

SELECT查詢:當查詢一個分區表的時候,分區層先打開并鎖住所有的底層表,優化器先判斷是否可以過濾部分分區,然后再調用對應的存儲引擎接口訪問各個分區的數據。

INSERT操作:當寫入一條記錄時,分區層先打開并鎖住所有的底層表,然后確定哪個分區接收這條記錄,再將記錄寫入對應底層表

DELETE操作:當刪除一條記錄,分區層先打開并鎖住所有的底層表,然后確定數據對應的分區,最后對相應底層表進行刪除操作。

UPDATE操作:當更新一條記錄時,分區層先打開并鎖住所有的底層表,MySQL先確定需要更新的記錄在哪個分區,然后取出數據并更新,在判斷更新后的數據應該放在哪個分區,最后對底層表進行寫入操作,并對原數據所在的底層表進行刪除操作。

 

有些操作是支持過濾的。當刪除一條記錄時,MySQL需要先找到這條記錄,如果WHERE條件恰好和分區表達式匹配,就可以將所有不包含這條記錄的分區都過濾掉。這對UPDATE語句同樣有效。如果是INSERT操作,則本身就是只命中一個分區,其他分區都會被過濾掉。MySQL先確定這條操作屬于哪個分區,再將記錄寫入對應的底層分區表,無須對任何其他分區進行操作。雖然每個操作都會”先打開并鎖住所有的底層表“,但這并不是說分區表在處理的過程中是鎖住全表的。如果存儲引擎能夠自己實現行級鎖,例如InnoDB,則會在分區層釋放對應表鎖。這個加鎖和解鎖過程與普通InnoDB上的查詢類似。

 

MySQL分區表與單個磁盤或文件系統分區相比,可以存儲更多的數據。了解MySQL分區表原理便于我們理解MySQL分區表的使用,對于我們掌握MySQL分區表是十分必要的。想要學習更多的MySQL數據庫中的知識,快來本站的MySQL教程學習吧!

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一区二区福利 | 亚洲人成在线观看一区二区 | 欧美日本亚洲国产一区二区 | 91亚洲国产成人久久精品网站 | 香港日本三级在线播放 | 久久精品伊人波多野结 | 花蝴蝶亚洲一区二区三区 | 亚洲日本va午夜中文字幕一区 | 在线看日韩 | 任你躁在线精品免费视频网站 | 国产一区二区三区在线观看免费 | 一本到视频在线 | 国产在线精品成人一区二区三区 | 欧美高清免费一级在线 | 国内精品免费视频精选在线观看 | 欧美成人免费网在线观看 | a资源在线观看 | 日韩a免费 | 夜夜躁日日躁狠狠久久 | 国产免费一级视频 | 看全色黄大色大片免费久久 | 在线jyzzjyzz免费视频 | 秋霞宅宅236理论片 秋霞在线高清观看伦理片 秋霞影视伦理手机在线观看 | 国产精品午夜久久 | 亚洲中文毛片播九公社 | 国产无内制服肉丝精品视频 | 日韩黄色在线观看 | 日韩精品视频在线观看免费 | 国产欧美日韩成人 | 韩日精品视频 | 日韩经典在线观看 | 深爱婷婷激情网 | 怡红院成人影院 | 欧美亚洲日本国产 | 免费在线视频你懂的 | 欧美bbbbxxxx| 欧美日韩网 | 亚洲欧美在线不卡 | 久久午夜免费鲁丝片 | 亚洲伊人成综合人影院小说 | 成年人免费观看的视频 |