<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
CREATE UNDO TABLESPACE
/DROP UNDO TABLESPACE
innodb_directories
引數定義可識別的路徑或預設的資料目錄下innodb_page_size
的值設定,預設16K,初始檔案大小為10M,8.0.23 之後Undo表空間初始大小為16M,預設擴充套件大小單位為16Mshow variables like '%undo%'; +--------------------------+------------+ | Variable_name | Value | +--------------------------+------------+ | innodb_max_undo_log_size | 8589934592 | | innodb_undo_directory | ./ | | innodb_undo_log_encrypt | OFF | | innodb_undo_log_truncate | ON | | innodb_undo_tablespaces | 2 | +--------------------------+------------+ show variables like '%truncate%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | innodb_purge_rseg_truncate_frequency | 128 | | innodb_undo_log_truncate | ON | +--------------------------------------+-------+ show variables like '%segment%'; +-------------------------------+-----------+ | Variable_name | Value | +-------------------------------+-----------+ | innodb_rollback_segments | 128 | | innodb_segment_reserve_factor | 12.500000 | +-------------------------------+-----------+ innodb_undo_log_truncate -- 控制是否自動做UNDO的truncate收縮操作,預設為ON,只有為ON時,下面2個引數才生效 innodb_max_undo_log_size -- 控制UNDO做truncate收縮操作的閾值,當UNDO達到該值時才出發收縮操作 innodb_purge_rseg_truncate_frequency -- Batch UNDO清理的次數,預設最大值128,也就是128次後才會觸發一次UNDO的truncate,而每次清理的undo page由innodb_purge_batch_size引數決定,innodb_purge_batch_size預設為300,也就是300*128個UNDO小批次清理後才會觸發UNDO表空間的truncate(也就是UNDO表空間的收縮)操作 innodb_undo_tablespaces -- 控制生成的UNDO表空間的數量,預設2個,在8.0對該引數做了廢棄,但並未提供其他引數控制UNDO數量,當前依舊可以使用該引數做UNDO表空間數量設定,通常建議設定為3(手工收縮UNDO時需要至少3個UNDO表空間) innodb_rollback_segments -- UNDO表空間回滾段的數量,預設為最大值128
-- 可以檢視到undo的表空間名稱/檔案路徑/初始大小/擴充套件大小/磁碟檔案大小/可用空間及是否啟用的狀態等 SELECT T1.SPACE AS SPACE_ID, T1.NAME AS TABLESPACE_NAME, T2.FILE_NAME, ROUND(T2.INITIAL_SIZE / 1024 / 1024, 2) AS "INITIAL_SIZE(M)", ROUND(T2.AUTOEXTEND_SIZE / 1024 / 1024, 2) AS "AUTOEXTEND_SIZE(M)", ROUND(T1.FILE_SIZE / 1024 / 1024, 2) AS "FILE_SIZE_DISK(M)", ROUND(T2.DATA_FREE / 1024 / 1024, 2) AS "DATA_FREE(M)", T2.STATUS, T1.STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES T1, INFORMATION_SCHEMA.FILES T2 WHERE T1.SPACE = T2.FILE_ID AND T1.ROW_FORMAT = 'Undo';
CREATE UNDO TABLESPACE
DROP UNDO TABLESPACE
ALTER UNDO TABLESPACE xxxx SET ACTIVE
ALTER UNDO TABLESPACE xxxx SET INACTIVE
-- 建立一個新的UNDO表空間 CREATE UNDO TABLESPACE undo_004 ADD DATAFILE 'undo_004.ibu'; -- 可以用前面的命令檢視建立後的狀態 -- 可以將已有的UNDO表示為inactive(也可理解為UNDO表空間收縮) -- PS:設定為INACTIVE的表空間的STATE為empty,表示這個表空間不包含任何事務回滾資料,且表空間也收縮為預設大小 ALTER UNDO TABLESPACE undo_003 SET INACTIVE; -- 可以將inactive的UNDO轉為active ALTER UNDO TABLESPACE innodb_undo_001 SET ACTIVE; -- 可以將inactive的UNDO表空間進行刪除 -- PS:預設以innodb_開頭初始化的undo表空間不可被刪除 DROP UNDO TABLESPACE innodb_undo_001; ERROR: 3119 (42000): InnoDB: Tablespace names starting with `innodb_` are reserved. -- 非系統預設的UNDO在inactive後可被刪除 ALTER UNDO TABLESPACE undo_003 SET ACTIVE; Query OK, 0 rows affected (0.0030 sec)
PS:通常對錶空間做收縮前最簡單避免效能的方式是提前建立一個UNDO表空間,收縮完後再刪除或一直保留均可
-- 可以使用以下命令開啟對UNDO的監控採集 SET GLOBAL innodb_monitor_enable=module_undo; SET GLOBAL innodb_monitor_enable=module_purge; -- 使用該命令檢視UNDO truncate的次數及耗時等資訊 SELECT NAME,SUBSYSTEM,COUNT,STATUS,COMMENT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME LIKE '%truncate%';
SHOW STATUS LIKE 'Innodb_undo_tablespaces%'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | Innodb_undo_tablespaces_total | 4 | -- 總共的UNDO表空間數量 | Innodb_undo_tablespaces_implicit | 2 | -- 這裡implicit其實表示的初始化建立的預設UNDO表空間個數,這種UNDO不可被刪除 | Innodb_undo_tablespaces_explicit | 2 | -- 這裡explicit其實表示手工顯式建立的UNDO表空間的個數 | Innodb_undo_tablespaces_active | 4 | -- 表示處於active的UNDO表空間的個數,可以看到當前和total一樣,說明都在使用 +----------------------------------+-------+
UNDO LOGS包含的是事務最後一次修改的聚簇索引記錄(MySQL是聚簇索引表,也就是包含了一行完整的記錄)
- 當innodb_page_size 為16KB預設值時,undo 的slot槽為1024個
- 16KB*1024/16=1024個槽
UNDO一共有以下4中紀錄檔型別
並行公式: (innodb_page_size / 16) * innodb_rollback_segments * number of undo tablespaces
select 16*1024/16*128*2; +------------------+ | 16*1024/16*128*2 | +------------------+ | 262144.0000 | +------------------+
並行公式:(innodb_page_size / 16 / 2) * innodb_rollback_segments * number of undo tablespaces
select 16*1024/16/2*128*2; +--------------------+ | 16*1024/16/2*128*2 | +--------------------+ | 131072.00000000 | +--------------------+
並行公式: (innodb_page_size / 16) * innodb_rollback_segments
select 16*1024/16*128; +----------------+ | 16*1024/16*128 | +----------------+ | 131072.0000 | +----------------+
並行公式:(innodb_page_size / 16 / 2) * innodb_rollback_segments
select 16*1024/16/2*128; +------------------+ | 16*1024/16/2*128 | +------------------+ | 65536.00000000 | +------------------+
https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-logs.html
https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html
到此這篇關於MySQL8.0 Undo Tablespace管理詳解的文章就介紹到這了,更多相關MySQL8.0 Undo Tablespace內容請搜尋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