中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL 8.0.2 新特性 UNDO表空間管理的靈活性提升

發布時間:2020-08-09 14:53:54 來源:ITPUB博客 閱讀:249 作者:神諭丶 欄目:MySQL數據庫
一篇自己翻譯的文章,原文來自MySQL Server官方團隊博客:
原文鏈接:http://mysqlserverteam.com/mysql-8-0-2-more-flexible-undo-tablespace-management/

同時也發布在了老葉茶館:
https://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=2653930802&idx=1&sn=db6c9acab8fb41da004f36ff90355258&chksm=bd3b5f588a4cd64e25e1beeac66d6a71beaa2ff0617ea8e46d3af5f9a3aecb4ff744b8d06b26&scene=38#wechat_redirect

在MySQL 8.0.2 DMR版本中,我們將提高InnoDB的UNDO表空間易管理性。

〇 主要有幾點提升:

1、可以隨時自由地創建或刪除UNDO表空間;
2、無論是否需要進行InnoDB恢復,也可以在啟動前更改相關設置;
3、即便InnoDB引擎處于繁忙狀態時,也可以增加或減少UNDO表空間的數量。


innodb_undo_tablespaces:
UNDO表空間包括回滾段,而回滾段又包括UNDO日志。UNDO日志用于'回滾'事務和創建MVCC所需要的舊版本數據,以便在一個事務中保證數據庫快照的一致性。

以前,當數據庫初始化時,InnoDB的UNDO表空間的數量是確定的。而現在可以隨時將其值設置為0~127之間的任意值,并可通過啟動時讀取的配置文件,或者命令行,或者通過在線‘SET GLOBAL INNODB_UNDO_TABLESPACES=n’進行修改。

當UNDO表空間數量設置為0時(不使用獨立UNDO表空間),所有的回滾段將存儲在系統表空間中。這是在 5.6版本之前,無法支持獨立UNDO表空間存儲回滾段情景下的舊模式。我們嘗試通過這種方式盡量不使用系統表空間,所以默認值不會設置為2。在將來的版本中該選項最小值是2,這表明系統表空間將不會被用作任何回滾段。所以請不要在你的配置文件中設置innodb_undo_tablespaces=0。


〇 innodb_undo_log_truncate:
我們將UNDO表空間的最小值設為2,因為當一個UNDO表空間被清空時,至少還需要有另一個UNDO表空間。InnoDB將在大事務結束后進行UNDO清除操作以收縮UNDO表空間大小。以前,innodb_undo_log_truncate的默認值為OFF,而在8.0.2版本該值默認為ON。



〇 innodb_rollback_segments:
選擇可以隨時設置為1~128之間的任何值。可通過啟動時讀取的配置文件,或直接在命令行中傳遞參數,或者啟動后在線執行命令‘SET GLOBAL INNODB_ROLLBACK_SEGMENTS=n’。


這個選項曾是用于整個服務器可以支持的回滾段數。現在為每一個UNDO表空間的回滾段數,允許并發事務使用更多的回滾段數,該選項默認值仍為128。


〇 innodb_undo_logs:
該選項在5.6中作為innodb_rollback_segments的替代或者別名所引入。在InnoDB中術語有一點兒混亂,‘Undo Logs’存儲在回滾段中,這是UNDO表空間的文件段。在8.0.2版本,我們打算棄用該選項改用Innodb_rollback_segments選項。在最新的發布的5.7.19版本中將增加這個不建議使用的warnings提示。



〇 UNDO表空間命名和位置:
UNDO表空間位于innodb_undo_directory所指定的目錄中。如果該選項沒有被使用,則放在‘datadir’中。以前,他們被命名為‘undo001’, ‘undo002’。在8.0.2 DMR版本,他們被稱作‘undo_001’, ‘undo_002’等。改名的原因是在新的UNDO表空間中包含了一個新的頭頁面,其映射了每一個回滾段的位置。而在5.6版本中,當使用獨立UNDO表空間時,其回滾段頭頁面號由系統表空間所跟蹤,并且限制整個實例的回滾段數為128。


由于每個UNDO表空間可以使用這個新頁來跟蹤自己的回滾段,這些是真正新的UNDO表空間類型,并需要有不同的命名約定。這也是innodb_rollback_segments現在定義每個UNDO表空間回滾段數量而不是整個MySQL實例數量的原因。


〇 自動升級:
在此更變之前,系統表空間會跟蹤所有回滾段,無論他們位于系統表空間還是UNDO表空間。如果現在在一個使用系統表空間跟蹤回滾段的已經存在了的數據庫上啟動MySQL 8.0.2,將自動生成至少兩個新的UNDO表空間。這將是很正常的,因為innodb_undo_tablespaces之前的默認值為0。MySQL 5.7數據庫將直接通過升級進程,其中包括從舊的FRM文件創建新的DD。作為此進程的一部分,還將創建至少兩個新的UNDO表空間。已經存在于系統表空間中的回滾段和UNDO表空間,如果尚有未清除的undo log,則它們仍然會被InnoDB識別并使用。但是InnoDB不會將這些老的回滾段分配給任何新的事務。所以一旦UNDO恢復完成,并不再需要這些UNDO日志,舊的UNDO表空間也將被刪除。



更多好處:
此新特性允許你在數據庫規模增長時,動態地添加更多的UNDO表空間和回滾段。使用更多的UNDO表空間,可以更輕松地通過UNDO表空間清除來減少用于存放回滾段的磁盤空間消耗。此外,更多的回滾段意味著并發事務可盡可能的使用單獨的回滾段,以減少相同資源的爭用。



Thanks for using MySQL!


p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'Helvetica Neue'}

作者微信公眾號(持續更新)
MySQL 8.0.2 新特性 UNDO表空間管理的靈活性提升



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通辽市| 轮台县| 鹤壁市| 永川市| 濮阳市| 花莲市| 天峨县| 枣强县| 建宁县| 安化县| 成都市| 大厂| 昂仁县| 安平县| 庐江县| 崇州市| 广东省| 永福县| 弥勒县| 小金县| 璧山县| 红安县| 肥西县| 抚松县| 克山县| 桃园市| 八宿县| 上思县| 女性| 商水县| 哈密市| 松滋市| 长白| 瑞安市| 梓潼县| 东乡族自治县| 中牟县| 曲沃县| 开鲁县| 合阳县| 建昌县|