TABLES
TABLES 表提供了关于数据库中表的信息:
USE information_schema;
DESC tables;
+---------------------------+---------------+------+------+----------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------------+---------------+------+------+----------+-------+
| TABLE_CATALOG | varchar(512) | YES | | NULL | |
| TABLE_SCHEMA | varchar(64) | YES | | NULL | |
| TABLE_NAME | varchar(64) | YES | | NULL | |
| TABLE_TYPE | varchar(64) | YES | | NULL | |
| ENGINE | varchar(64) | YES | | NULL | |
| VERSION | bigint(21) | YES | | NULL | |
| ROW_FORMAT | varchar(10) | YES | | NULL | |
| TABLE_ROWS | bigint(21) | YES | | NULL | |
| AVG_ROW_LENGTH | bigint(21) | YES | | NULL | |
| DATA_LENGTH | bigint(21) | YES | | NULL | |
| MAX_DATA_LENGTH | bigint(21) | YES | | NULL | |
| INDEX_LENGTH | bigint(21) | YES | | NULL | |
| DATA_FREE | bigint(21) | YES | | NULL | |
| AUTO_INCREMENT | bigint(21) | YES | | NULL | |
| CREATE_TIME | datetime | YES | | NULL | |
| UPDATE_TIME | datetime | YES | | NULL | |
| CHECK_TIME | datetime | YES | | NULL | |
| TABLE_COLLATION | varchar(32) | NO | | utf8_bin | |
| CHECKSUM | bigint(21) | YES | | NULL | |
| CREATE_OPTIONS | varchar(255) | YES | | NULL | |
| TABLE_COMMENT | varchar(2048) | YES | | NULL | |
| TIDB_TABLE_ID | bigint(21) | YES | | NULL | |
| TIDB_ROW_ID_SHARDING_INFO | varchar(255) | YES | | NULL | |
| TIDB_PK_TYPE | varchar(64) | YES | | NULL | |
| TIDB_PLACEMENT_POLICY_NAME | varchar(64) | YES | | NULL | |
| TIDB_TABLE_MODE | varchar(16) | YES | | NULL | |
| TIDB_AFFINITY | varchar(128) | YES | | NULL | |
+---------------------------+---------------+------+------+----------+-------+
27 rows in set (0.00 sec)
SELECT * FROM tables WHERE table_schema='mysql' AND table_name='user'\G
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: mysql
TABLE_NAME: user
TABLE_TYPE: BASE TABLE
ENGINE: InnoDB
VERSION: 10
ROW_FORMAT: Compact
TABLE_ROWS: 0
AVG_ROW_LENGTH: 0
DATA_LENGTH: 0
MAX_DATA_LENGTH: 0
INDEX_LENGTH: 0
DATA_FREE: 0
AUTO_INCREMENT: NULL
CREATE_TIME: 2020-07-05 09:25:51
UPDATE_TIME: NULL
CHECK_TIME: NULL
TABLE_COLLATION: utf8mb4_bin
CHECKSUM: NULL
CREATE_OPTIONS:
TABLE_COMMENT:
TIDB_TABLE_ID: 5
TIDB_ROW_ID_SHARDING_INFO: NULL
TIDB_PK_TYPE: CLUSTERED
TIDB_PLACEMENT_POLICY_NAME: NULL
TIDB_TABLE_MODE: Normal
TIDB_AFFINITY: NULL
1 row in set (0.00 sec)
下列语句等价:
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'db_name'
[AND table_name LIKE 'wild']
SHOW TABLES
FROM db_name
[LIKE 'wild']
TABLES 表中各列的说明如下:
TABLE_CATALOG:表所属 catalog 的名称。该值始终为def。TABLE_SCHEMA:表所属 schema 的名称。TABLE_NAME:表名。TABLE_TYPE:表的类型。ENGINE:存储引擎的类型。当前值为InnoDB。VERSION:版本。默认值为10。ROW_FORMAT:行格式。当前值为Compact。TABLE_ROWS:统计信息中的表行数。AVG_ROW_LENGTH:表的平均行长度。AVG_ROW_LENGTH=DATA_LENGTH/TABLE_ROWS。DATA_LENGTH:数据长度。DATA_LENGTH=TABLE_ROWS× 元组中各列存储长度之和。不计入 TiKV 副本。MAX_DATA_LENGTH:最大数据长度。当前值为0,表示数据长度没有上限。INDEX_LENGTH:索引长度。INDEX_LENGTH=TABLE_ROWS× 索引元组中各列长度之和。不计入 TiKV 副本。DATA_FREE:数据碎片。当前值为0。AUTO_INCREMENT:自增主键当前步长。CREATE_TIME:表的创建时间。UPDATE_TIME:表的修改(如:修改行)时间。CHECK_TIME:表的检查时间。TABLE_COLLATION:表中字符串的排序规则。CHECKSUM:校验和。CREATE_OPTIONS:创建选项。TABLE_COMMENT:表的注释和说明。
表中的大部分信息与 MySQL 相同。以下列为 TiDB 新增定义:
TIDB_TABLE_ID:表示表的内部 ID。该 ID 在 TiDB 集群中唯一。TIDB_ROW_ID_SHARDING_INFO:表示表的分片(动词或动名词)类型。可能的取值如下:"NOT_SHARDED":该表未分片(动词或动名词)。"NOT_SHARDED(PK_IS_HANDLE)":定义了整数型主键作为 row id 的表未分片(动词或动名词)。"PK_AUTO_RANDOM_BITS={bit_number}":定义了整数型主键作为 row id 且主键带有AUTO_RANDOM属性的表已分片(动词或动名词)。"SHARD_BITS={bit_number}":通过SHARD_ROW_ID_BITS={bit_number}进行分片(动词或动名词)的表。NULL:系统表或视图,无法分片(动词或动名词)。
TIDB_PK_TYPE:表的主键类型。可能的取值包括CLUSTERED(聚簇主键)和NONCLUSTERED(非聚簇主键)。TIDB_PLACEMENT_POLICY_NAME:应用于该表的 placement policy 名称。TIDB_TABLE_MODE:表的模式,例如Normal、Import或Restore。TIDB_AFFINITY:表的 affinity 级别。非分区表为table,分区表为partition,未启用 affinity 时为NULL。