站長資訊網
        最全最豐富的資訊網站

        MySQL性能調優之分區表(總結分享)

        本篇文章給大家帶來了關于mysql的相關知識,其中主要介紹了關于性能調優的相關問題,主要介紹了分區表的相關內容,對于用戶而言,分區表是一個獨立的邏輯表,但是底層是由多個物理子表組成,下面一起來看一下,希望對大家有幫助。

        MySQL性能調優之分區表(總結分享)

        推薦學習:mysql視頻教程

        對于用戶而言,分區表是一個獨立的邏輯表,但是底層是由多個物理子表組成。分區表對于用戶而言是一個完全封裝底層實現的黑盒子,對用戶而言是透明的,從文件系統中可以看到多個使用#分隔命名的表文件。
        mysql在創建表時使用partition by子句定義每個分區存放的數據,在執行查詢的時候,優化器會根據分區定義過濾那些沒有我們需要數據的分區,這樣查詢就無須掃描所有分區。
        分區的主要目的是將數據安好一個較粗的力度分在不同的表中,這樣可以將相關的數據存放在一起。
        接下來,我將從以下6個方面來談談分區表,分別是分區表的應用場景、分區表的限制、分區表的原理、分區表的類型、如何使用分區表、在使用分區表的時候需要注意的問題。

        一、分區表的應用場景

        1、表非常大以至于無法全部都放在內存中,或者只在表的最后部分有熱點數據,其他均是歷史數據。

        2、分區表的數據更容易維護

        (1)批量刪除大量數據可以使用清除整個分區的方式

        (2)對一個獨立分區進行優化、檢查、修復等操作

        3、分區表的數據可以分布在不同的物理設備上,從而高效地利用多個硬件設備

        4、可以使用分區表來避免某些特殊的瓶頸

        (1)innodb的單個索引的互斥訪問

        (2)ext3文件系統的inode鎖競爭

        5、可以備份和恢復獨立的分區

        二、分區表的限制

        1、一個表最多只能有1024個分區,在5.7版本的時候可以支持8196個分區

        2、在早期的mysql中,分區表達式必須是整數或者是返回整數的表達式,在mysql5.5中,某些場景可以直接使用列來進行分區。

        3、如果分區字段中有主鍵或者唯一索引的列,那么所有主鍵列和唯一索引列都必須包含進來。

        4、分區表無法使用外鍵約束

        三、分區表的原理

        分區表由多個相關的底層表實現,這個底層表也是由句柄對象標識,我們可以直接訪問各個分區。存儲引擎管理分區的各個底層表和管理普通表一樣(所有的底層表都必須使用相同的存儲引擎),分區表的索引知識在各個底層表上各自加上一個完全相同的索引。從存儲引擎的角度來看,底層表和普通表沒有任何不同,存儲引擎也無須知道這是一個普通表還是一個分區表的一部分。分區表的操作按照以下的操作邏輯進行:

        1、select查詢

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

        2、insert操作

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

        3、delete操作

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

        4、update操作

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

        有些操作時支持過濾的,例如,當刪除一條記錄時,MySQL需要先找到這條記錄,如果where條件恰好和分區表達式匹配,就可以將所有不包含這條記錄的分區都過濾掉,這對update同樣有效。如果是insert操作,則本身就是只命中一個分區,其他分區都會被過濾掉。mysql先確定這條記錄屬于哪個分區,再將記錄寫入對應得曾分區表,無須對任何其他分區進行操作。

        雖然每個操作都會“先打開并鎖住所有的底層表”,但這并不是說分區表在處理過程中是鎖住全表的,如果存儲引擎能夠自己實現行級鎖,例如innodb,則會在分區層釋放對應表鎖。

        推薦學習:mysql視頻教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 小辣椒福利视频精品导航| 蜜臀AV无码国产精品色午夜麻豆| 欧美精品黑人粗大欧| 无码精品国产VA在线观看| 国产韩国精品一区二区三区| 国语精品一区二区三区| 亚洲国产成人精品91久久久| 国产A√精品区二区三区四区| 国产三级久久久精品麻豆三级 | 人妻少妇精品视中文字幕国语| 337P亚洲精品色噜噜| 久久国产亚洲精品无码| 亚洲日韩国产精品乱| 国产偷国产偷高清精品| 亚洲精品欧美综合在线| 国产成人久久精品区一区二区| 四虎成人精品永久免费AV| 欧美成人精品欧美一级乱黄码| 国产2021久久精品| 国内精品91最新在线观看| 国产办公室秘书无码精品99| 久久精品国产亚洲av高清漫画| 亚洲精品一品区二品区三品区| 欧美激情精品久久久久久久九九九| 精品欧美| 国产精品户外野外| 51国偷自产精品一区在线视频| 一本久久a久久精品综合夜夜| 91精品国产高清久久久久久91| 亚洲国产精品国自产拍电影| 久久国产乱子精品免费女| 国产精品夜色一区二区三区| 精品九九久久国内精品| 国产精品亚洲午夜一区二区三区| 久久91精品国产91久久户| 久久99精品久久久久久| 久久国产精品久久| 91po国产在线精品免费观看| 亚洲第一精品在线视频| 国产高清一级毛片精品| 国产亚洲精品线观看动态图|