?redo log buffer:
? ?緩存與事務(wù)有關(guān)的redo log ,用來對mysql進行crash恢復(fù),不可禁用;
? ?日志緩沖區(qū)是存儲要寫入磁盤上日志文件的數(shù)據(jù)的內(nèi)存區(qū)域。日志緩沖區(qū)大小由innodb_Log_buffer_size變量定義。
? ?默認大小為16MB。日志緩沖區(qū)的內(nèi)容會定期刷新到磁盤。大型日志緩沖區(qū)使大型事務(wù)能夠運行,
? ?而無需在事務(wù)提交之前將重做日志數(shù)據(jù)寫入磁盤。因此,如果您有更新、插入或刪除許多行的事務(wù),
? ?那么增加日志緩沖區(qū)的大小可以節(jié)省磁盤I/O
變量innodb_log_buffer_size:
?? ?指定redo log buffer的大小;
變量innodb_log_group_home_dir:
? ? 指定redo log file的路徑
變量innodb_log_files_in_group :
?? ?每組日志組中包含的日志文件個數(shù);
?? ?mysql> show variables like 'innodb_log_group_home_dir';
?? ?+---------------------------+-------+
?? ?| Variable_name ? ? ? ? ? ? | Value |
?? ?+---------------------------+-------+
?? ?| innodb_log_group_home_dir | ./ ? ?|
?? ?+---------------------------+-------+
?? ?1 row in set (0.00 sec)?? ?
?? ?mysql> show variables like 'innodb_log_files_in_group';
?? ?+---------------------------+-------+
?? ?| Variable_name ? ? ? ? ? ? | Value |
?? ?+---------------------------+-------+
?? ?| innodb_log_files_in_group | 2 ? ? |
?? ?+---------------------------+-------+
?? ?1 row in set (0.00 sec)
?? ?mysql> show variables like 'datadir';
?? ?+---------------+-------------------+
?? ?| Variable_name | Value ? ? ? ? ? ? |
?? ?+---------------+-------------------+
?? ?| datadir ? ? ? | /data/mysql/data/ |
?? ?+---------------+-------------------+
?? ?1 row in set (0.00 sec)
?? ?mysql>?
? ? [root@student ~]# ls ?/data/mysql/data/*logfile*
? ? /data/mysql/data/ib_logfile0 ?/data/mysql/data/ib_logfile1
? ? 組中共有兩個logfile
? ? [root@student ~]# du -m ?/data/mysql/data/*logfile* ? ? #48MB
?? ?48?? ?/data/mysql/data/ib_logfile0
?? ?48?? ?/data/mysql/data/ib_logfile1
?? ?[root@student ~]#?
? ? mysql> show variables like 'innodb_log_file_size'; ?#日志大小
?? ?+----------------------+----------+
?? ?| Variable_name ? ? ? ?| Value ? ?|
?? ?+----------------------+----------+
?? ?| innodb_log_file_size | 50331648 |
?? ?+----------------------+----------+
?? ?1 row in set (0.01 sec)
?? ?mysql> select 50331648/1024/1024;
?? ?+--------------------+
?? ?| 50331648/1024/1024 |
?? ?+--------------------+
?? ?| ? ? ? ?48.00000000 |
?? ?+--------------------+
?? ?1 row in set (0.00 sec)
?? ?mysql>?
? 修改日志組和日志文件大小
?? ?[root@student ~]# systemctl stop mysql
?? ?[root@student ~]# cat ?/etc/my.cnf
?? ?[mysqld]
?? ?datadir=/data/mysql/data/
?? ?socket=/data/mysql/mysql.sock
?? ?innodb_buffer_pool_chunk_size=64M
?? ?innodb_buffer_pool_size=256M
?? ?innodb_log_file_size=100M
?? ?innodb_log_files_in_group=4
?? ?
? ?[root@student ~]# systemctl start mysql
?? ?mysql> show variables like '%innodb_log%';
?? ?+------------------------------------+-----------+
?? ?| Variable_name ? ? ? ? ? ? ? ? ? ? ?| Value ? ? |
?? ?+------------------------------------+-----------+
?? ?| innodb_log_buffer_size ? ? ? ? ? ? | 16777216 ?|
?? ?| innodb_log_checksums ? ? ? ? ? ? ? | ON ? ? ? ?|
?? ?| innodb_log_compressed_pages ? ? ? ?| ON ? ? ? ?|
?? ?| innodb_log_file_size ? ? ? ? ? ? ? | 104857600 | ? #100MB?
?? ?| innodb_log_files_in_group ? ? ? ? ?| 4 ? ? ? ? | ? #4個logfile?
?? ?| innodb_log_group_home_dir ? ? ? ? ?| ./ ? ? ? ?|
?? ?| innodb_log_spin_cpu_abs_lwm ? ? ? ?| 80 ? ? ? ?|
?? ?| innodb_log_spin_cpu_pct_hwm ? ? ? ?| 50 ? ? ? ?|
?? ?| innodb_log_wait_for_flush_spin_hwm | 400 ? ? ? |
?? ?| innodb_log_write_ahead_size ? ? ? ?| 8192 ? ? ?|
?? ?+------------------------------------+-----------+
?? ?[root@student ~]# du -m ?/data/mysql/data/ib_logfile*
?? ?100?? ?/data/mysql/data/ib_logfile0
?? ?100?? ?/data/mysql/data/ib_logfile1
?? ?100?? ?/data/mysql/data/ib_logfile2
?? ?100?? ?/data/mysql/data/ib_logfile3
?? ?[root@student ~]#?
?? ?
?? ?redo log buffer:緩存與事務(wù)有關(guān)的redo log,用來對mysqldi進行crash恢復(fù),不可禁用
?? ?變量innodb log buffer size:指定redo log buffer的大小
?? ?變量innodb_log_group_home_dir:指定redo log文件的路徑
?? ?變量innodb_log_files_in_group:指定Redo log.文件的數(shù)量
?? ?變量innodb_log_file_size:指定每個redo log文件的大小
?? ?實驗:redo log的設(shè)置:
?? ?1、查看上述變量I
?? ?2、通過set命令指定redo log buffer的大小為32M
?? ?3、在選項文件中指定相關(guān)變量,設(shè)置redo log buffer的大小為32M,設(shè)置redo log.文件為4個,每個文件100M
?? ?重新啟動mysqld服務(wù),再此查看上述變量
存儲引擎
列出 mysql所支持的存儲引擎
mysql>show engines;
默認存儲引擎為innoDB,不可禁用
mysql> show engines;
只有InnoDB ?和DBcluster支持事務(wù)acid
mysql> use testdb
mysql> create table t1(id integer);
mysql> start transaction;
mysql> insert into t1 values(1);
mysql> select * from t1;
+------+
| id ? |
+------+
| ? ?1 |
+------+
1 row in set (0.00 sec)
mysql> insert into t1 values('xyz');
ERROR 1366 (HY000): Incorrect integer value: 'xyz' for column 'id' at row 1
mysql> rollback;
mysql> select * from t1;
Empty set (0.00 sec)
#體現(xiàn)要么全部成功,要么全部失敗
LAMP:Linux Apache mysql PHP
加鎖的級別:
?? ?InnoDB:行級鎖
?? ?MyISAM:表級鎖
數(shù)據(jù)字典:系統(tǒng)表
表空間:一種邏輯結(jié)構(gòu),用于組織表和索引,位于表和數(shù)據(jù)文件之間
實驗1:存儲引擎
1、創(chuàng)建數(shù)據(jù)庫testdb,進入數(shù)據(jù)庫
? ? create databases testdb;
?? ?use testdb;
2、 創(chuàng)建表t1,存儲引擎為myisam
?? ?create table t1(id integer) engine=myisam
3、在表上執(zhí)行事務(wù),觀察事務(wù)的rollback
?? ?start transaction;
?? ?insert into t1 values(100);
?? ?insert into t1 values('xyz');#觀賽錯誤信息;
?? ?rollback ;
?? ?mysql> rollback ; #回滾之后數(shù)據(jù)還在,因為mysql 不支持ACID
?? ?Query OK, 0 rows affected, 1 warning (0.00 sec)
?? ?mysql> select * from t1;
?? ?+------+
?? ?| id ? |
?? ?+------+
?? ?| ?100 |
?? ?+------+
?? ?1 row in set (0.00 sec)
4、創(chuàng)建表t2 存儲引擎為innodb,在表上執(zhí)行事務(wù),觀察事務(wù)的rollback
?? ?create table t2(id integer) engine=innodb;
?? ?start transaction;
?? ?insert into ?t2 values(100);
?? ?insert into ?t2 values('xyz');#觀賽錯誤信息;
?? ?rollback; ? ? ? ? ? ? ? ? ? ? #rollback 之后,剛插入的數(shù)據(jù)全部回滾
?? ?
?? ?mysql> select * from t2;
?? ?Empty set (0.00 sec)
5、 把t1表的存儲引擎改為innnodb;
? ? alter table t1 engine innodb;
?? ?mysql> start transaction;
?? ?Query OK, 0 rows affected (0.00 sec)
?? ?mysql> insert into t1 values(22);
?? ?Query OK, 1 row affected (0.00 sec)
?? ?mysql> ?insert into ?t2 values('xyz');
?? ?ERROR 1366 (HY000): Incorrect integer value: 'xyz' for column 'id' at row 1
?? ?mysql> rollback;
?? ?Query OK, 0 rows affected (0.02 sec)
?? ?mysql> select * from t1;
?? ?+------+
?? ?| id ? |
?? ?+------+
?? ?| ?100 |
?? ?+------+
?? ?1 row in set (0.00 sec)
?? ?mysql>?
?
表空間
表空間的類型
- ?? ?System Tablespace
- ?? ?Undo Tablespaces
- ?? ?General Tablespaces
- ?? ?File-Per-Table Tablespaces
- ?? ?Temporary Tablespace
? ?System Tablespace
?在MySQL 8.0中,InnoDB將元數(shù)據(jù)存儲在MySQL數(shù)據(jù)字典中.在以前的MySQL版本中,系統(tǒng)表空間也包含雙寫緩沖區(qū)存儲(Doublewrite Buffer)區(qū)域。從MySQL 8.0.20開始,此存儲區(qū)域位于單獨的雙寫文件中.
系統(tǒng)表空間可以有一個或多個數(shù)據(jù)文件。默認情況下,在數(shù)據(jù)目錄中創(chuàng)建一個名為ibdata1的系統(tǒng)表空間數(shù)據(jù)文件。
與系統(tǒng)表空間有關(guān)的變量:
????????innodb_data_file_path:系統(tǒng)表空間數(shù)據(jù)文件的名稱、初始大小和數(shù)量,是否自動擴展;
?????????innodb_data_home_dir? ?:系統(tǒng)表空間數(shù)據(jù)文件的路徑,如果為空,則是數(shù)據(jù)文件路徑?
????????innodb_autoextend_increment:每次擴展系統(tǒng)表空間時的自動擴展量
mysql> show variables like '%innodb_data%';
+-----------------------+------------------------+
| Variable_name ? ? ? ? | Value ? ? ? ? ? ? ? ? ?|
+-----------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
| innodb_data_home_dir ?| ? ? ? ? ? ? ? ? ? ? ? ?|
+-----------------------+------------------------+
2 rows in set (0.00 sec)
[root@student ~]# du -m ?/data/mysql/data/ibdata1;
12?? ?/data/mysql/data/ibdata1
mysql> show variables like 'innodb_autoextend_increment';
+-----------------------------+-------+
| Variable_name ? ? ? ? ? ? ? | Value |
+-----------------------------+-------+
| innodb_autoextend_increment | 64 ? ?|
+-----------------------------+-------+
1 row in set (0.01 sec)
擴展系統(tǒng)表空間
需要在配置文件中更改
擴容:
[mysqld]
datadir=/data/mysql/data/
socket=/data/mysql/mysql.sock
innodb_buffer_pool_chunk_size=64M
innodb_buffer_pool_size=256M
innodb_log_file_size=100M
innodb_log_files_in_group=4
#innodb_data_file_path=ibdata1:10M:autoextend
innodb_data_home_dir=
innodb_data_file_path=/data/mysql/data/ibdata1:12M;/data/mysql/data/ibdata2:480M:autoextend:max:960M
不能通過更改現(xiàn)有系統(tǒng)表空間數(shù)據(jù)文件的大小屬性來增加其大小。例如,在啟動服務(wù)器時,將innodb_data_file_path設(shè)置從ibdata1:12M:autoextend更改為ibdata1:120M:autoextend會生以下?類似錯誤:
[ERROR] [MY-012263] [InnoDB] The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
###只有最后一個文件才可以自動擴展
驗證:
mysql> show variables like '%innodb_data%';
+-----------------------+--------------------------------------------------------------------------------+
| Variable_name ? ? ? ? | Value ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
+-----------------------+--------------------------------------------------------------------------------+
| innodb_data_file_path | /data/mysql/data/ibdata1:12M;/data/mysql/data/ibdata2:480M:autoextend:max:960M |
| innodb_data_home_dir ?| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
+-----------------------+--------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
mysql>?
?
縮容
不支持減小現(xiàn)有系統(tǒng)表空間的大小。實現(xiàn)較小系統(tǒng)表空間的唯一選擇是將數(shù)據(jù)從備份恢復(fù)到使用所需系統(tǒng)表空間大小配置創(chuàng)建的新MySQL實例。
為系統(tǒng)表空間使用原始磁盤分區(qū)
MySQL :: MySQL 8.0 Reference Manual :: 15.6.3.1 The System Tablespace
Temporary Tablespaces
?
session temporary tablespaces?
?InnoDB:
會話臨時表空間存儲用戶創(chuàng)建的臨時表和優(yōu)化器創(chuàng)建的內(nèi)部臨時表。從MySQL 8.0.16開始,用于磁盤內(nèi)部臨時表的存儲引擎是InnoDB。(以前,存儲引擎由internal_tmp_disk_storage_engine的值決定。)
會話臨時表空間文件創(chuàng)建時大小為五頁,文件擴展名為.ibt。
[root@student ~]# du -m ?/data/mysql/data/ibtmp1
12?? ?/data/mysql/data/ibtmp1
innodb_tmp_tablespaces_dir:變量定義了創(chuàng)建會話臨時表空間的位置。默認位置是數(shù)據(jù)目錄中的#innodb_temp目錄。
INNODB_SESSION_TEMP_TABLESPACES:表提供有關(guān)會話臨時表空間的元數(shù)據(jù)。
Information Schema INNODB_TEMP_TABLE_INFO:表提供了關(guān)于用戶創(chuàng)建的臨時表的元數(shù)據(jù),這些臨時表在INNODB實例中處于活動狀態(tài)。
global temporary tablespace.
全局臨時表空間(ibtmp1)存儲對用戶創(chuàng)建的臨時表所做更改的回滾段。
innodb_temp_data_file_path?
innodb_temp_data_file_path 變量定義全局臨時表空間數(shù)據(jù)文件的相對路徑、名稱、大小和屬性。如果沒有為innodb_temp_data_file_path指定值,則默認行為是在innodb_data_home_dir目錄中創(chuàng)建一個名為ibtmp1的自動擴展數(shù)據(jù)文件。初始文件大小略大于12MB。
腳本的執(zhí)行
mysql>source 腳本文件
mysql -uroot -p密碼 ? <腳本文件
事務(wù)自動提交
?Undo tablespaces
********************************************************************************
** ? ?Undo tablespaces
********************************************************************************
Undo tablespaces包含撤消日志,這些日志是記錄的集合,包含有關(guān)如何撤消事務(wù)對聚集索引記錄的最新更改的信息
create.drop ,delete ,update ,insert ; 存儲undo數(shù)據(jù),由rollback段組成,功能:允許用戶回滾事務(wù)
mysql5.7不單獨提供Undo tablespaces,從MySQL8.0開始提供
默認Undo tablespaces
?? ?show variables like 'innodb_undo_directory%';
?? ?show variables like 'innodb_undo_tablespaces';
?? ?show variables like ‘%innodb_max_undo_log_size’;
?? ?show variables like ‘innodb_undo_log_truncate‘;
?? ?
?? ?MySQL實例初始化時會創(chuàng)建兩個默認的undo表空間。默認的撤消表空間是在初始化時創(chuàng)建的,以便為回滾段提供一個位置,回滾段必須存在才能接受SQL語句。至少需要兩個撤消表空間來支持撤消表空間的自動截斷。
? ? show variables like '%datadir%
?? ?+---------------+-------------------+
?? ?| Variable_name | Value ? ? ? ? ? ? |
?? ?+---------------+-------------------+
?? ?| datadir ? ? ? | /data/mysql/data/ |
?? ?+---------------+-------------------+
?? ?[root@student ~]# du -m /data/mysql/data/undo*
?? ?10?? ?/data/mysql/data/undo_001
?? ?10?? ?/data/mysql/data/undo_002
?? ?[root@student ~]#?
?? ?mysql> show variables like 'innodb_undo_tablespaces';
?? ?+-------------------------+-------+
?? ?| Variable_name ? ? ? ? ? | Value |
?? ?+-------------------------+-------+
?? ?| innodb_undo_tablespaces | 2 ? ? | ?##默認值
?? ?+-------------------------+-------+
?? ?1 row in set (0.00 sec)
? ??
Undo tablespaces大小
?? ?在MySQL 8.0.23之前,undo表空間的初始大小取決于innodb_page_size值。對于默認的16KB頁面大小,初始撤消表空間文件大小為10MiB
?? ?innodb_page_size ? ? undo tablespace大小
?? ? ? ? ?4k ? ? ? ? ? ? ? ? 7MiB?
?? ??? ? ?8K ? ? ? ? ? ? ? ? 8M
?? ??? ? ?32KB ? ? ? ? ? ? ? 20MiB
?? ??? ? ?64KB ? ? ? ? ? ? ? 40MiB
?? ?從MySQL 8.0.23開始,undo表空間的初始大小通常為16MiB。?? ? ?
?? ?在MySQL 8.0.23之前,undo表空間一次擴展四個區(qū)段。從MySQL 8.0.23開始,undo表空間至少擴展了16MB。如果AUTOEXTEND_SIZE選項是為撤消表空間定義的,則它將由AUTOEXTEND _SIZE設(shè)置和由上述邏輯確定的擴展大小中的較大者進行擴展?? ? 。
?? ?show variables like '%AUTOEXTEND _SIZE%';
?? ?練習(xí):
?? ??? ?改innodb_undo_tablespaces=4 ,在選項文件中設(shè)置;
?? ?[root@student ~]# cat /etc/my.cnf|grep innodb_undo_tablespaces=4
?? ?innodb_undo_tablespaces=4
?? ?
?? ?SELECT TABLESPACE_NAME, FILE_NAME FROM INFORMATION_SCHEMA.FILES
? ? WHERE FILE_TYPE LIKE 'UNDO LOG';
?? ??? ?
? ??
添加Undo tablespaces
?? ?MySQL 8.0.14
?? ?在MySQL 8.0.14之前,通過配置innodb_undo_tablespace啟動變量可以創(chuàng)建額外的undo表空間。
?? ?
? ? 從MySQL8.0.14開始,innodb_undo_tablespaces 初始化時指定的數(shù)量,如要創(chuàng)建更多的undo表空間
?? ?從MySQL8.0.14開始 innodb_undo_tablespaces已不再可用。
?? ?
?? ?CREATE UNDO TABLESPACE tablespace_name ADD DATAFILE 'file_name.ibu';
?? ?語法
?? ?https://dev.mysql.com/doc/refman/8.0/en/create-tablespace.html
?? ?show variables like '%innodb_directories%';
? ? 撤消表空間文件名必須具有擴展名。不允許定義撤消表空間文件時指定相對路徑。
?? ?innodb_directories?
?? ?innodb_data_home_dir
?? ?innodb_undo_directory?
?? ?datadir?
?? ?撤消表空間文件名不包含路徑,則由innodb_undo_directory指定。
?? ?innodb_undo_directory未指定,則由datadir指定。
?? ?
?? ?要查看撤消表空間名稱和路徑
? ? SELECT TABLESPACE_NAME, FILE_NAME FROM INFORMATION_SCHEMA.FILES ? WHERE FILE_TYPE LIKE 'UNDO LOG';?
?? ?一個 MySQL 實例最多支持 127 個撤消表空間,包括 MySQL 實例創(chuàng)建的兩個默認撤消表空間 已初始化。
?? ?
刪除Undo tablespaces
?? ?從MySQL 8.0.14開始,可以在運行時創(chuàng)建或刪除Undo tablespaces。
?? ?1、Undo tablespaces的活動狀態(tài):
?? ??? ?ALTER UNDO TABLESPACE tablespace_name SET INACTIVE;
?? ?2、刪除Undo tablespaces:
?? ??? ?DROP UNDO TABLESPACE tablespace_name;
?? ?3、查詢,以確認。
?? ??? ?SELECT NAME, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES ? WHERE NAME LIKE 'tablespace_name';
?? ?
移動Undo tablespaces
?? ?在服務(wù)離線時,由CREATE UNDO TABLESPACE創(chuàng)建時的UNDO TABLESPACE可以移動任何已知的目錄:
?? ?innodb_directories?
?? ?innodb_data_home_dir
?? ?innodb_undo_directory
?? ?datadir?
?? ?
配置 Rollback Segments的數(shù)量
?? ? innodb_rollback_segments為每個undo tablespace和global temporary tablespace指定回滾段的數(shù)量
?? ? innodb_rollback_segments 默認是 128個,具體可參考 “Undo Logs”.
?? ? ?
截斷Undo tablespaces
?? ?方法1:自動化。在沒有手動干預(yù)的情況下對撤消表空間自動執(zhí)行停用、截斷和重新激活。
?? ??? ?SET GLOBAL innodb_undo_log_truncate=ON;
?? ??? ?show variables like 'innodb_undo_log_truncate';
?? ??? ?如果啟用了innodb_undo_log_struncate變量,則會截斷超過innodb_max_undo_log_size變量定義的大小限制的撤消表空間。
?? ??? ?SELECT @@innodb_max_undo_log_size;
?? ??? ?
?? ?當啟用innodb_undo_log_truncate時
?? ??? ?1、超過innodb_max_undo_log_size設(shè)置的默認和用戶定義的撤消表空間被標記為截斷。選擇要截斷的撤消表空間是以循環(huán)方式執(zhí)行的,
?? ??? ?以避免每次都截斷同一個撤消表空間。
?? ??? ?2、被標記為截斷的撤消表空間中的回滾段處于非活動狀態(tài),回滾段處于非活動狀態(tài),并執(zhí)行完成當前正在使用回滾段的現(xiàn)有事務(wù)。
?? ??? ?3、purge system 釋放回滾段空間。
?? ??? ?4、truncate操作將運行并將undo表面積截斷為其初始大小。
?? ??? ? ? 關(guān)聯(lián)參數(shù)和表空間
?? ??? ??? ? innodb_undo_directory
?? ??? ??? ? SELECT TABLESPACE_NAME, FILE_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE LIKE 'UNDO LOG';
?? ??? ?5、 Rollback segments重新激活,以便重新分配給新事務(wù)。
?? ?
?? ?優(yōu)化自動Undo tablespaces
?? ??? ?清除線程負責(zé)清空和截斷撤消表空間。默認情況下,清除線程每調(diào)用128次清除,就會查找要截斷的撤消表空間。由innodb_urge_rseg_truncate_frequency指定。
?? ??? ?SELECT@@innodb_urge_rseg_truncate_frequency;
?? ??? ?mysql> SET GLOBAL innodb_purge_rseg_truncate_frequency=32; ? #加快清理頻率。
?? ??? ?
?? ?方法2:手動。
?? ??? ?手動截斷撤消表空間至少需要三個活動撤消表空間。始終需要兩個活動的撤消表空間來支持啟用自動截斷的可能性。
?? ??? ?要手動啟動對撤消表空間的截斷:
?? ? ? ? 1、ALTER UNDO TABLESPACE tablespace_name SET INACTIVE;
?? ??? ? 2、其它步驟同自動截斷。
?? ??? ? 3、確認,查詢?
?? ??? ??? ?SELECT NAME, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES ?WHERE NAME LIKE 'tablespace_name';
?? ??? ? 4、ALTER UNDO TABLESPACE tablespace_name SET ACTIVE;
?? ??? ??
?? ?
?? ?兩種方法可以結(jié)合使用文章來源:http://www.zghlxwxcb.cn/news/detail-723184.html
?? ?截斷Undo tablespaces對性能的影響
?? ?可能會導(dǎo)致性能略有下降。性能受影響的程度取決于多個因素:
?? ?1、撤消表空間數(shù)
?? ?2、撤消日志數(shù)
?? ?3、撤消表空間大小
?? ?3、I/O子系統(tǒng)的速度
?? ?4、現(xiàn)有的長期事務(wù)
?? ?5、系統(tǒng)負載
?? ?6、免除潛在性能影響的最簡單方法是增加撤消表空間的數(shù)量。?
?? ?
?? ?
?? ?
Undo tablespaces狀態(tài)?
? 監(jiān)控Undo tablespaces的狀態(tài)
?? ?SELECT NAME, SUBSYSTEM, COMMENT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME LIKE '%truncate%';
?? ?SHOW STATUS LIKE 'Innodb_undo_tablespaces%';
?文章來源地址http://www.zghlxwxcb.cn/news/detail-723184.html
到了這里,關(guān)于MySQL 8.0 OCP認證精講視頻、環(huán)境和題庫之五 事務(wù)、緩存 、表空間的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!