• TiDB 系统数据库
    • 权限系统表
    • 服务端帮助信息系统表
    • 统计信息相关系统表
    • GC Worker 相关系统表
    • 其它系统表
  • INFORMATION_SCHEMA 里面的表
    • CHARACTER_SETS Table
    • COLLATIONS Table
    • COLLATION_CHARACTER_SET_APPLICABILITY Table
    • COLUMNS Table
    • COLUMN_PRIVILEGES Table
    • ENGINES Table
    • EVENTS Table
    • FILES Table
    • GLOBAL_STATUS Table
    • GLOBAL_VARIABLES Table
    • KEY_COLUMN_USAGE Table
    • OPTIMIZER_TRACE Table
    • PARAMETERS Table
    • PARTITIONS Table
    • PLUGINS Table
    • PROFILING Table
    • REFERENTIAL_CONSTRAINTS Table
    • ROUTINES Table
    • SCHEMATA Table
    • SCHEMA_PRIVILEGES Table
    • SESSION_STATUS Table
    • SESSION_VARIABLES Table
    • STATISTICS Table
    • TABLES Table
    • TABLESPACES Table
    • TABLE_CONSTRAINTS Table
    • TABLE_PRIVILEGES Table
    • TRIGGERS Table
    • USER_PRIVILEGES Table
    • VIEWS Table

    TiDB 系统数据库

    TiDB 的系统数据库跟 MySQL 类似,里面包含一些服务器运行时需要的信息。

    权限系统表

    这些系统表里面包含了用户账户以及相应的授权信息:

    • user 用户账户,全局权限,以及其它一些非权限的列
    • db 数据库级别的权限
    • tables_priv 表级的权限
    • columns_priv 列级的权限

    服务端帮助信息系统表

    • help_topic 目前为空

    统计信息相关系统表

    • stats_buckets 统计信息的桶
    • stats_histograms 统计信息的直方图
    • stats_meta 表的元信息,比如总行数和修改数

    GC Worker 相关系统表

    • gc_delete_range

    其它系统表

    • GLOBAL_VARIABLES 全局系统变量表
    • tidb 用于 TiDB 在 bootstrap 的时候记录相关版本信息

    INFORMATION_SCHEMA 里面的表

    INFORMATION_SCHEMA 库里面的表主要是为了兼容 MySQL 而存在,有些第三方软件会查询里面的信息。在目前 TiDB 的实现中,里面大部分只是一些空表。

    CHARACTER_SETS Table

    提供字符集相关的信息,其实数据是假的。TiDB 默认支持并且只支持 utf8mb4 。

    1. mysql> select * from CHARACTER_SETS;
    2. +--------------------|----------------------|-----------------------|--------+
    3. | CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION | MAXLEN |
    4. +--------------------|----------------------|-----------------------|--------+
    5. | ascii | ascii_general_ci | US ASCII | 1 |
    6. | binary | binary | Binary pseudo charset | 1 |
    7. | latin1 | latin1_swedish_ci | cp1252 West European | 1 |
    8. | utf8 | utf8_general_ci | UTF-8 Unicode | 3 |
    9. | utf8mb4 | utf8mb4_general_ci | UTF-8 Unicode | 4 |
    10. +--------------------|----------------------|-----------------------|--------+
    11. 5 rows in set (0.00 sec)

    COLLATIONS Table

    同上。

    COLLATION_CHARACTER_SET_APPLICABILITY Table

    空表。

    COLUMNS Table

    COLUMNS 表提供了关于所有表的列的信息。这张表里面的信息不准确,推荐使用 SHOW 语句查询:

    1. SHOW COLUMNS FROM table_name [FROM db_name] [LIKE 'wild']

    COLUMN_PRIVILEGES Table

    空表。

    ENGINES Table

    ENGINES 表提供了关于存储引擎的信息。目前这张表里面的数据是假的。生产环境中,TiDB 只推荐使用 TiKV 引擎。

    EVENTS Table

    空表。

    FILES Table

    空表。

    GLOBAL_STATUS Table

    空表。

    GLOBAL_VARIABLES Table

    空表。

    KEY_COLUMN_USAGE Table

    KEY_COLUMN_USAGE 这张表描述了关于列的 key 的约束,比如是否是主键列。

    OPTIMIZER_TRACE Table

    空表。

    PARAMETERS Table

    空表。

    PARTITIONS Table

    空表。

    PLUGINS Table

    空表。

    PROFILING Table

    空表。

    REFERENTIAL_CONSTRAINTS Table

    空表。

    ROUTINES Table

    空表。

    SCHEMATA Table

    SCHEMATA 表提供了关于数据库的信息。表中的内容和 SHOW DATABASES 基本等价。

    1. mysql> select * from SCHEMATA;
    2. +--------------|--------------------|----------------------------|------------------------|----------+
    3. | CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
    4. +--------------|--------------------|----------------------------|------------------------|----------+
    5. | def | INFORMATION_SCHEMA | utf8 | utf8_bin | NULL |
    6. | def | mysql | utf8 | utf8_bin | NULL |
    7. | def | PERFORMANCE_SCHEMA | utf8 | utf8_bin | NULL |
    8. | def | test | utf8 | utf8_bin | NULL |
    9. +--------------|--------------------|----------------------------|------------------------|----------+
    10. 4 rows in set (0.00 sec)

    SCHEMA_PRIVILEGES Table

    空表。

    SESSION_STATUS Table

    空表。

    SESSION_VARIABLES Table

    SESSION_VARIABLES 表提供了关于 session 变量的信息。表中的数据跟 SHOW SESSION VARIABLES 类似。

    STATISTICS Table

    统计信息的表。

    1. mysql> desc statistics;
    2. +---------------|---------------------|------|------|---------|-------+
    3. | Field | Type | Null | Key | Default | Extra |
    4. +---------------|---------------------|------|------|---------|-------+
    5. | TABLE_CATALOG | varchar(512) | YES | | NULL | |
    6. | TABLE_SCHEMA | varchar(64) | YES | | NULL | |
    7. | TABLE_NAME | varchar(64) | YES | | NULL | |
    8. | NON_UNIQUE | varchar(1) | YES | | NULL | |
    9. | INDEX_SCHEMA | varchar(64) | YES | | NULL | |
    10. | INDEX_NAME | varchar(64) | YES | | NULL | |
    11. | SEQ_IN_INDEX | bigint(2) UNSIGNED | YES | | NULL | |
    12. | COLUMN_NAME | varchar(21) | YES | | NULL | |
    13. | COLLATION | varchar(1) | YES | | NULL | |
    14. | CARDINALITY | bigint(21) UNSIGNED | YES | | NULL | |
    15. | SUB_PART | bigint(3) UNSIGNED | YES | | NULL | |
    16. | PACKED | varchar(10) | YES | | NULL | |
    17. | NULLABLE | varchar(3) | YES | | NULL | |
    18. | INDEX_TYPE | varchar(16) | YES | | NULL | |
    19. | COMMENT | varchar(16) | YES | | NULL | |
    20. | INDEX_COMMENT | varchar(1024) | YES | | NULL | |
    21. +---------------|---------------------|------|------|---------|-------+

    下列操作是等价的。

    1. SELECT * FROM INFORMATION_SCHEMA.STATISTICS
    2. WHERE table_name = 'tbl_name'
    3. AND table_schema = 'db_name'
    4. SHOW INDEX
    5. FROM tbl_name
    6. FROM db_name

    TABLES Table

    TABLES 表提供了数据库里面关于表的信息。

    以下操作是等价的:

    1. SELECT table_name FROM INFORMATION_SCHEMA.TABLES
    2. WHERE table_schema = 'db_name'
    3. [AND table_name LIKE 'wild']
    4. SHOW TABLES
    5. FROM db_name
    6. [LIKE 'wild']

    TABLESPACES Table

    空表。

    TABLE_CONSTRAINTS Table

    TABLE_CONSTRAINTS 记录了表的约束信息。其中:

    • CONSTRAINT_TYPE 的取值可以是 UNIQUE, PRIMARY KEY, 或者 FOREIGN KEY。
    • UNIQUE 和 PRIMARY KEY 信息跟 SHOW INDEX 看到的是一样的。

    TABLE_PRIVILEGES Table

    空表。

    TRIGGERS Table

    空表。

    USER_PRIVILEGES Table

    USER_PRIVILEGES 表提供了关于全局权限的信息。这张表的内容是根据 mysql.user 表生成的。

    1. mysql> desc USER_PRIVILEGES;
    2. +----------------|--------------|------|------|---------|-------+
    3. | Field | Type | Null | Key | Default | Extra |
    4. +----------------|--------------|------|------|---------|-------+
    5. | GRANTEE | varchar(81) | YES | | NULL | |
    6. | TABLE_CATALOG | varchar(512) | YES | | NULL | |
    7. | PRIVILEGE_TYPE | varchar(64) | YES | | NULL | |
    8. | IS_GRANTABLE | varchar(3) | YES | | NULL | |
    9. +----------------|--------------|------|------|---------|-------+
    10. 4 rows in set (0.00 sec)

    VIEWS Table

    空表。TiDB 暂不支持视图。