MySQL 8.0 中 4 個(gè)默認(rèn)的系統(tǒng)數(shù)據(jù)庫

作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫管理與開發(fā)經(jīng)驗(yàn),目前在一家全球性的金融公司從事數(shù)據(jù)庫架構(gòu)設(shè)計(jì)。CSDN學(xué)院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net

文章目錄

        mysql 系統(tǒng)數(shù)據(jù)庫
            數(shù)據(jù)字典表
            權(quán)限信息表
            對(duì)象信息表
            查詢?nèi)罩颈?br>            服務(wù)器端幫助信息表
            時(shí)區(qū)信息表
            復(fù)制信息表
            優(yōu)化器系統(tǒng)表
            其他系統(tǒng)表
        information_schema 信息數(shù)據(jù)庫
        performance_schema 性能數(shù)據(jù)庫
        sys 數(shù)據(jù)庫
        總結(jié)

大家好,我是只談技術(shù)不剪發(fā)的 Tony 老師。今天給大家介紹一下 MySQL 8.0 中默認(rèn)安裝的幾個(gè)系統(tǒng)數(shù)據(jù)庫/模式。

當(dāng)我們安裝 MySQL 8.0 并初始化數(shù)據(jù)庫之后,默認(rèn)會(huì)創(chuàng)建以下系統(tǒng)數(shù)據(jù)庫:

    mysql,存儲(chǔ)了 MySQL 服務(wù)器正常運(yùn)行所需的各種信息。
    information_schema,提供了訪問數(shù)據(jù)庫元數(shù)據(jù)的各種視圖,包括數(shù)據(jù)庫、表、字段類型以及訪問權(quán)限等。
    performance_schema,為 MySQL 服務(wù)器的運(yùn)行時(shí)狀態(tài)提供了一個(gè)底層的監(jiān)控功能。
    sys,包含了一系列方便 DBA 和開發(fā)人員利用 performance_schema 性能數(shù)據(jù)庫進(jìn)行性能調(diào)優(yōu)和診斷的視圖。

使用SHOW DATABASES或者SHOW SCHEMAS命令查看所有的數(shù)據(jù)庫/模式:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)



mysql 系統(tǒng)數(shù)據(jù)庫

mysql 數(shù)據(jù)庫存儲(chǔ)了 MySQL 服務(wù)器正常運(yùn)行所需的各種系統(tǒng)信息,包含了關(guān)于數(shù)據(jù)庫對(duì)象元數(shù)據(jù)(metadata)的數(shù)據(jù)字典表和系統(tǒng)表。

從 MySQL 8.0 開始,mysql 系統(tǒng)表和數(shù)據(jù)字典表使用 InnoDB 存儲(chǔ)引擎,存儲(chǔ)在 MySQL 數(shù)據(jù)目錄下的 mysql.ibd 表空間文件中。在 MySQL 5.7 之前,這些系統(tǒng)表使用 MyISAM 存儲(chǔ)引擎,存儲(chǔ)在 mysql 數(shù)據(jù)庫文件目錄下各自的表空間文件中。

為了便于理解和使用,mysql 系統(tǒng)數(shù)據(jù)庫中的表可以分為多種類別,下面我們分別進(jìn)行介紹。
數(shù)據(jù)字典表

這些表構(gòu)成了 MySQL 的數(shù)據(jù)字典,也就是關(guān)于數(shù)據(jù)庫對(duì)象的元數(shù)據(jù)。數(shù)據(jù)字典表對(duì)于用戶而言是不可見的,不能使用 SELECT 進(jìn)行查詢,也不會(huì)出現(xiàn)在 SHOW TABLES 或者 INFORMATION_SCHEMA.TABLES 表中。不過,大多數(shù)表可以通過 INFORMATION_SCHEMA 數(shù)據(jù)庫中相應(yīng)的視圖進(jìn)行查詢。

例如,我們不能直接查詢 mysql.tables 表:

mysql> select * from mysql.tables;
ERROR 3554 (HY000): Access to data dictionary table 'mysql.tables' is rejected.



不過,可以通過 INFORMATION_SCHEMA.TABLES 查詢數(shù)據(jù)庫中的表:

mysql> select * from information_schema.tables;



具體來說,MySQL 8.0 包括以下數(shù)據(jù)字典表:

    catalogs:系統(tǒng)目錄(Catalog)信息。
    character_sets:系統(tǒng)支持的字符集。
    check_constraints:CHECK 約束信息。
    collations:字符集支持的排序規(guī)則。
    column_statistics:字段的直方圖統(tǒng)計(jì)信息。
    column_type_elements:字段的數(shù)據(jù)類型信息。
    columns:表中的字段信息。
    dd_properties:存儲(chǔ)數(shù)據(jù)字典的屬性,例如版本。服務(wù)器利用這些信息決定是否需要升級(jí)數(shù)據(jù)字典。
    events:事件調(diào)度器中的事件信息。
    foreign_keys、foreign_key_column_usage:外鍵相關(guān)的信息。
    index_column_usage:索引字段信息。
    index_partitions:索引分區(qū)信息。
    index_stats:ANALYZE TABLE 命令生成的動(dòng)態(tài)索引統(tǒng)計(jì)。
    indexes:表中的索引信息。
    innodb_ddl_log:支持原子 DDL 操作的日志。
    parameter_type_elements:存儲(chǔ)過程和函數(shù)的參數(shù)信息,以及存儲(chǔ)函數(shù)的返回值類型
    parameters:關(guān)于存儲(chǔ)過程和函數(shù)的信息。
    resource_groups:關(guān)于資源組的信息。
    routines:關(guān)于存儲(chǔ)過程和函數(shù)的信息。
    schemata:關(guān)于數(shù)據(jù)庫/模式的信息。在 MySQL 中,模式和數(shù)據(jù)庫是相同的概念。
    st_spatial_reference_systems:可以用于空間數(shù)據(jù)的空間參照系統(tǒng)。
    table_partition_values:表分區(qū)使用的分區(qū)值。
    table_partitions:表的分區(qū)信息。
    table_stats:ANALYZE TABLE 命令生成的動(dòng)態(tài)表統(tǒng)計(jì)。
    tables:數(shù)據(jù)庫中的表。
    tablespace_files:表空間使用的文件。
    tablespaces:活動(dòng)表空間。
    triggers:觸發(fā)器。
    view_routine_usage:視圖和存儲(chǔ)函數(shù)之間的依賴關(guān)系。
    view_table_usage:視圖和基表之間的依賴關(guān)系。

到目前為止,mysql.foreign_keys 和 mysql.foreign_key_column_usage 還沒有完全對(duì)應(yīng)的 INFORMATION_SCHEMA 表。按照 SQL 標(biāo)準(zhǔn),可以使用 INFORMATION_SCHEMA 數(shù)據(jù)庫中的 REFERENTIAL_CONSTRAINTS 和 KEY_COLUMN_USAGE 查詢外鍵相關(guān)的信息。

從 MySQL 8.0 開始,一些 INFORMATION_SCHEMA 數(shù)據(jù)字典表取代了之前的系統(tǒng)表,這些系統(tǒng)表不再存在于 mysql 系統(tǒng)數(shù)據(jù)庫中:

    數(shù)據(jù)字典表 events 取代了之前的 event 系統(tǒng)表。
    數(shù)據(jù)字典表 parameters 和 routines 共同取代了之前的 proc 系統(tǒng)表。

權(quán)限信息表

這些系統(tǒng)表存儲(chǔ)了用戶賬戶的授權(quán)信息以及它們擁有的權(quán)限。

從 MySQL 8.0 開始,這些權(quán)限表使用事務(wù)型的 InnoDB 存儲(chǔ)引擎替代了之前的 MyISAM 存儲(chǔ)引擎。存儲(chǔ)引擎的改變也帶來了賬戶管理行為的變化。例如之前的 CREATE USER 和 GRANT 語句如果同時(shí)操作多個(gè)用戶,可能導(dǎo)致部分用戶操作成功而其他用戶操作失??;現(xiàn)在這些操作具有事務(wù)性,要么全部用戶都操作成功,要么出現(xiàn)錯(cuò)誤回滾所有的操作。

MySQL 8.0 中的權(quán)限信息表如下:

    user:用戶賬戶、全局權(quán)限以及其他信息。
    global_grants:用戶的動(dòng)態(tài)全局權(quán)限。
    db:數(shù)據(jù)庫級(jí)別的權(quán)限。
    tables_priv:表級(jí)別的權(quán)限。
    columns_priv:字段級(jí)別的權(quán)限。
    procs_priv:存儲(chǔ)過程和函數(shù)上的權(quán)限。
    proxies_priv:代理用戶權(quán)限。
    default_roles:用戶連接并認(rèn)證后默認(rèn)激活的角色,或者執(zhí)行 SET ROLE DEFAULT 命令后設(shè)置的角色。
    role_edges:角色的授予關(guān)系。user 表中的一行數(shù)據(jù)既可能代表一個(gè)用戶賬戶,也可能代表一個(gè)角色。
    password_history:密碼修改歷史。

對(duì)象信息表

這些系統(tǒng)表包含了關(guān)于存儲(chǔ)過程、組件、用戶定義函數(shù)以及服務(wù)器端插件的信息:

    component:服務(wù)器組件的注冊(cè)信息。
    func:用戶定義函數(shù)(UDF)信息。
    plugin:服務(wù)器端插件信息。

查詢?nèi)罩颈?br>
    general_log:通用查詢?nèi)罩颈怼?br>    slow_log:慢查詢?nèi)罩颈怼?br>
這些日志表的存儲(chǔ)引擎為 CSV。
服務(wù)器端幫助信息表

這些表中存儲(chǔ)了服務(wù)器端相關(guān)的幫助信息:

    help_category:幫助信息分類。
    help_keyword:幫助信息關(guān)鍵字。
    help_relation:關(guān)鍵字和幫助主題之間的關(guān)系。
    help_topic:幫助主題的具體內(nèi)容。

時(shí)區(qū)信息表

這些系統(tǒng)表包含了時(shí)區(qū)相關(guān)的信息:

    time_zone:時(shí)區(qū) ID 以及是否包含閏秒。
    time_zone_leap_second:閏秒發(fā)生的情況。
    time_zone_name:時(shí)區(qū) ID 和名稱的映射。
    time_zone_transition、time_zone_transition_type:時(shí)區(qū)描述。

復(fù)制信息表

MySQL 服務(wù)器使用這些表維護(hù)復(fù)制功能:

    gtid_executed:存儲(chǔ) GTID 數(shù)據(jù)。
    ndb_binlog_index: NDB 集群復(fù)制的二進(jìn)制日志信息。
    slave_master_info、slave_relay_log_info、slave_worker_info:在從服務(wù)器上存儲(chǔ)復(fù)制信息。

優(yōu)化器系統(tǒng)表

這些系統(tǒng)表會(huì)被優(yōu)化器使用:

    innodb_index_stats、innodb_table_stats:InnoDB 優(yōu)化器持久性統(tǒng)計(jì)信息。
    server_cost、engine_cost:優(yōu)化器成本模型需要使用這些表中存儲(chǔ)的各種操作的評(píng)估成本進(jìn)行優(yōu)化。server_cost 包含了通用服務(wù)器操作的優(yōu)化器成本估計(jì),engine_cost 包含了特定存儲(chǔ)引擎操作的優(yōu)化器成本估計(jì)。

其他系統(tǒng)表

    audit_log_filter、audit_log_user:如果安裝了 MySQL Enterprise Audit,這些審計(jì)日志表中會(huì)存儲(chǔ)關(guān)于審計(jì)日志過濾器和審計(jì)的用戶賬戶信息。
    firewall_users、firewall_whitelist:如果安裝了 MySQL Enterprise Firewall,這些表中會(huì)存儲(chǔ)企業(yè)防火墻使用的信息。
    servers:FEDERATED 存儲(chǔ)引擎使用的遠(yuǎn)程服務(wù)器連接信息。
    innodb_dynamic_metadata:InnoDB 存儲(chǔ)的快速變化的元數(shù)據(jù),例如 auto-increment 計(jì)數(shù)值和索引損壞標(biāo)識(shí)。該表用于替代 InnoDB 系統(tǒng)表空間中的數(shù)據(jù)字典緩沖表。

關(guān)于 mysql 系統(tǒng)數(shù)據(jù)庫的更多信息,可以參考官方文檔。
information_schema 信息數(shù)據(jù)庫

INFORMATION_SCHEMA 數(shù)據(jù)庫提供了訪問數(shù)據(jù)庫元數(shù)據(jù)的各種視圖,包括數(shù)據(jù)庫、表、字段類型以及訪問權(quán)限等。這些信息有時(shí)候也被稱為數(shù)據(jù)字典(data dictionary )或者系統(tǒng)目錄(system catalog),主要來源就是 mysql 系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)字典表。

INFORMATION_SCHEMA 中的表實(shí)際上都是只讀的視圖,只能執(zhí)行查詢操作,不能執(zhí)行 DML 語句。通常使用SHOW語句查看的信息都存在對(duì)應(yīng)的數(shù)據(jù)字典表,例如SHOW DATABASES語句也可以使用以下查詢實(shí)現(xiàn):

mysql> select schema_name
    -> from information_schema.schemata;
+--------------------+
| SCHEMA_NAME        |
+--------------------+
| mysql              |
| information_schema |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)


information_schema.tables 存儲(chǔ)了數(shù)據(jù)庫中的所有表和視圖信息,包括它自己的系統(tǒng)視圖:

mysql> select table_name, table_type
    -> from information_schema.tables
    -> where table_schema = 'information_schema';
+---------------------------------------+-------------+
| TABLE_NAME                            | TABLE_TYPE  |
+---------------------------------------+-------------+
| ADMINISTRABLE_ROLE_AUTHORIZATIONS     | SYSTEM VIEW |
| APPLICABLE_ROLES                      | SYSTEM VIEW |
| CHARACTER_SETS                        | SYSTEM VIEW |
...
| VIEWS                                 | SYSTEM VIEW |
| VIEW_ROUTINE_USAGE                    | SYSTEM VIEW |
| VIEW_TABLE_USAGE                      | SYSTEM VIEW |
+---------------------------------------+-------------+
73 rows in set (0.01 sec)



利用這些視圖,我們可以方便地查看 MySQL 數(shù)據(jù)庫、表結(jié)構(gòu)、約束、索引以及視圖、存儲(chǔ)過程/函數(shù)、觸發(fā)器、計(jì)劃任務(wù)等信息。

另外,關(guān)于這些 INFORMATION_SCHEMA 表的完整介紹,可以參考官方文檔。
performance_schema 性能數(shù)據(jù)庫

performance_schema 性能數(shù)據(jù)庫為 MySQL 服務(wù)器的運(yùn)行時(shí)狀態(tài)提供了一個(gè)底層的監(jiān)控功能。

MySQL 默認(rèn)啟動(dòng)了性能數(shù)據(jù)庫,也可以在啟動(dòng)服務(wù)時(shí)通過參數(shù) performance_schema 指定是否啟用。例如,在配置文件 my.cnf 中進(jìn)行如下設(shè)置:

[mysqld]
performance_schema=ON


性能數(shù)據(jù)庫中的表的存儲(chǔ)引擎為 PERFORMANCE_SCHEMA,數(shù)據(jù)存儲(chǔ)在內(nèi)存中:

mysql> select table_name, table_type, engine
    -> from information_schema.tables
    -> where table_schema = 'performance_schema';
+------------------------------------------------------+------------+--------------------+
| TABLE_NAME                                           | TABLE_TYPE | ENGINE             |
+------------------------------------------------------+------------+--------------------+
| accounts                                             | BASE TABLE | PERFORMANCE_SCHEMA |
| binary_log_transaction_compression_stats             | BASE TABLE | PERFORMANCE_SCHEMA |
| cond_instances                                       | BASE TABLE | PERFORMANCE_SCHEMA |
...
| users                                                | BASE TABLE | PERFORMANCE_SCHEMA |
| variables_by_thread                                  | BASE TABLE | PERFORMANCE_SCHEMA |
| variables_info                                       | BASE TABLE | PERFORMANCE_SCHEMA |
+------------------------------------------------------+------------+--------------------+
104 rows in set (0.01 sec)


MySQL 服務(wù)每次啟動(dòng)時(shí)都會(huì)重新初始化性能數(shù)據(jù)庫,我們可以使用以下命令查看是否成功初始化:

mysql> show variables like 'performance_schema';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| performance_schema | ON    |
+--------------------+-------+
1 row in set (0.01 sec)



ON 表示成功初始化;OFF 意味著出現(xiàn)了錯(cuò)誤,此時(shí)需要檢查服務(wù)器的錯(cuò)誤日志進(jìn)行處理。

performance_schema 數(shù)據(jù)庫的名稱是小寫形式,所有的表名也是小寫。我們可以使用 SHOW CREATE TABLE 命令查看表的定義,例如:

mysql> show create table performance_schema.users\G
*************************** 1. row ***************************
       Table: users
Create Table: CREATE TABLE `users` (
  `USER` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
  `CURRENT_CONNECTIONS` bigint NOT NULL,
  `TOTAL_CONNECTIONS` bigint NOT NULL,
  UNIQUE KEY `USER` (`USER`)
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)



performance_schema 數(shù)據(jù)庫中的表可以按照收集信息的類型分成不同的組:

    設(shè)置表,顯示和修改監(jiān)控配置。這些表的名稱都以 setup_ 開始,例如 setup_objects 表存儲(chǔ)了需要進(jìn)行監(jiān)控的對(duì)象。
    當(dāng)前事件表,events_waits_current 表包含了每個(gè)線程最新的等待事件。其他類似的表包含了不同級(jí)別的等待事件:events_stages_current 代表每個(gè)線程當(dāng)前執(zhí)行階段的事件,events_statements_current 代表了當(dāng)前語句事件,events_transactions_current 代表了當(dāng)前事務(wù)事件。
    歷史事件表,這些表的結(jié)構(gòu)和當(dāng)前事件表相同,但是包含了更多的歷史數(shù)據(jù)。例如 events_waits_history 表包含了每個(gè)線程最近的 10 個(gè)等待事件,events_waits_history_long 表包含了所有線程最近的 10000 個(gè)事件。階段事件、語句事件以及事務(wù)事件也存在類似的歷史事件表。
    事件匯總表,包含了按照不同事件分組匯總的信息,包括已經(jīng)從歷史事件表中移除的事件。例如,events_waits_summary_by_instance 代表了每個(gè)監(jiān)測(cè)實(shí)例的等待事件匯總。
    監(jiān)測(cè)實(shí)例表,記錄了被檢測(cè)的對(duì)象類型。每個(gè)監(jiān)測(cè)對(duì)象會(huì)產(chǎn)生一個(gè)事件,這些表存儲(chǔ)了事件名稱和解釋性說明或者狀態(tài)信息。例如,file_instances 表存儲(chǔ)了 I/O 監(jiān)測(cè)涉及到的文件。
    其他表,例如 threads 表包含了每個(gè)線程的信息。

關(guān)于 performance_schema 表的分類和詳細(xì)介紹,可以參考官方文檔。

初始情況下,并不是所有的監(jiān)測(cè)項(xiàng)目(等待事件)和消費(fèi)者(performance_schema 表)都處于啟用狀態(tài),因此性能數(shù)據(jù)庫不會(huì)收集所有事件并更新相應(yīng)的 performance_schema 表。如果想要啟用所有的監(jiān)測(cè)事件和計(jì)時(shí)功能,可以執(zhí)行以下兩個(gè)語句:

mysql> UPDATE performance_schema.setup_instruments
       SET ENABLED = 'YES', TIMED = 'YES';
Query OK, 560 rows affected (0.04 sec)
mysql> UPDATE performance_schema.setup_consumers
       SET ENABLED = 'YES';
Query OK, 10 rows affected (0.00 sec)



當(dāng)然,我們也可以根據(jù)需要啟用或者禁用某個(gè)監(jiān)測(cè)事件和 performance_schema 表的統(tǒng)計(jì)更新。

然后就可以通過上面介紹的各種等待事件表查看服務(wù)器的運(yùn)行狀態(tài)和性能數(shù)據(jù)。例如,以下查詢可以獲取占用最多等待時(shí)間的等待事件:

mysql> select event_name, sum_timer_wait
    -> from performance_schema.events_waits_summary_global_by_event_name
    -> order by sum_timer_wait desc limit 10;
+---------------------------------------+--------------------+
| event_name                            | sum_timer_wait     |
+---------------------------------------+--------------------+
| idle                                  | 709703548630225000 |
| wait/io/file/innodb/innodb_data_file  |     12991466035548 |
| wait/io/file/innodb/innodb_dblwr_file |      5866787225266 |
| wait/io/file/innodb/innodb_log_file   |      4101617858470 |
| wait/io/table/sql/handler             |      2467223162844 |
| wait/io/file/innodb/innodb_temp_file  |       518447928064 |
| wait/io/file/sql/binlog               |       324876178484 |
| wait/io/file/sql/binlog_index         |        71481172202 |
| wait/io/file/myisam/kfile             |        47731122384 |
| wait/io/file/sql/ERRMSG               |        42268213086 |
+---------------------------------------+--------------------+
10 rows in set (0.02 sec)



顯然,我們的系統(tǒng)大部分時(shí)間都處于空閑狀態(tài)(idle)。

關(guān)于性能數(shù)據(jù)庫的更多信息,可以參考官方文檔。
sys 數(shù)據(jù)庫

MySQL 5.7.7 引入了 sys 數(shù)據(jù)庫,其中包含了一系列的視圖,可以方便 DBA 和開發(fā)人員解釋 performance_schema 性能數(shù)據(jù)庫中收集的數(shù)據(jù)。sys 數(shù)據(jù)庫中的對(duì)象主要用于性能調(diào)優(yōu)和診斷,包括:

    視圖,將性能數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行匯總,以更加容易理解的形式進(jìn)行展示。
    存儲(chǔ)過程,配置性能數(shù)據(jù)庫以及生成診斷報(bào)告等操作。
    存儲(chǔ)函數(shù),用于查詢性能數(shù)據(jù)庫的配置和格式化服務(wù)。

對(duì)于全新的安裝,如果使用 --initialize 或者 --initialize-insecure 選項(xiàng)執(zhí)行 mysqld 初始化操作,默認(rèn)會(huì)安裝 sys 數(shù)據(jù)庫。如果不想要安裝 sys 數(shù)據(jù)庫,可以在初始化之后手動(dòng)刪除。

sys 數(shù)據(jù)庫中提供了一個(gè)存儲(chǔ)配置選項(xiàng)的 sys_config 表以及該表上的兩個(gè)觸發(fā)器 sys_config_insert_set_user 和 sys_config_update_set_user。

sys 數(shù)據(jù)庫中的視圖大部分都是成對(duì)出現(xiàn)的,它們的名稱相同,其中一個(gè)加上了 x$ 前綴。例如,視圖 host_summary_by_file_io 匯總了按照主鍵分組的文件 I/O 并顯示了更易閱讀的延遲信息(而不是原本以皮秒為單位的延遲):

mysql> select * from sys.host_summary_by_file_io;
+------------+------+------------+
| host       | ios  | io_latency |
+------------+------+------------+
| background | 1630 | 4.53 s     |
| localhost  |    6 | 81.64 ms   |
+------------+------+------------+
2 rows in set (0.06 sec)



同時(shí),視圖 x$host_summary_by_file_io 匯總了相同的信息,但是延遲以皮秒為單位進(jìn)行顯示:

mysql> select * from sys.x$host_summary_by_file_io;
+------------+------+---------------+
| host       | ios  | io_latency    |
+------------+------+---------------+
| background | 1630 | 4528276024976 |
| localhost  |    6 |   81639950348 |
+------------+------+---------------+
2 rows in set (0.00 sec)



沒有 x$ 前綴的視圖是為了方便用戶使用和查看p,包含 x$ 前綴的視圖是為了其他工具進(jìn)一步的處理。

sys 數(shù)據(jù)庫中的以下視圖可以為長(zhǎng)時(shí)間運(yùn)行的事務(wù)提供進(jìn)度報(bào)告:

processlist
session
x$processlist
x$session



如果以及啟動(dòng)相應(yīng)的測(cè)試項(xiàng)目和消費(fèi)者,視圖中的 progress 列會(huì)顯示每個(gè)操作階段(必須支持進(jìn)度報(bào)告)的完成百分比。

mysqldump 和 mysqlpump 工具默認(rèn)都不會(huì)導(dǎo)出 sys 數(shù)據(jù)庫。如果想要導(dǎo)出該數(shù)據(jù)庫,可以在命令行中明確指定 sys 數(shù)據(jù)庫的名稱:

mysqldump --databases --routines sys > sys_dump.sql
mysqlpump sys > sys_dump.sql


使用以下命令還原導(dǎo)出的備份文件:

mysql < sys_dump.sql


總結(jié)

數(shù)據(jù)字典、系統(tǒng)信息表和性能數(shù)據(jù)庫,對(duì)于我們了解 MySQL 數(shù)據(jù)庫的結(jié)構(gòu)、日常維護(hù)管理以及性能的診斷和優(yōu)化都至關(guān)重要。因此,無論是 DBA 還是開發(fā)人員,都應(yīng)該熟悉并掌握這些數(shù)據(jù)庫對(duì)象的意義和使用場(chǎng)景。我們也會(huì)在后續(xù)文章中針對(duì)每個(gè)系統(tǒng)數(shù)據(jù)庫做進(jìn)一步的詳細(xì)介紹和演示。

如果覺得文章對(duì)你有用,請(qǐng)不要白嫖!歡迎關(guān)注??、評(píng)論??、點(diǎn)贊??!