information_schema系列六(索引,表空间,权限,约束相关表)
1: STATISTICS
这个表提供的是关于表的索引信息:
INFORMATION_SCHEMA Name | SHOW Name |
TABLE_CATALOG | |
TABLE_SCHEMA | |
TABLE_NAME | Table |
NON_UNIQUE | Non_unique |
INDEX_SCHEMA | |
INDEX_NAME | Key_name |
SEQ_IN_INDEX | Seq_in_index |
COLUMN_NAME | Column_name |
COLLATION | Collation |
CARDINALITY | Cardinality |
SUB_PART | Sub_part |
PACKED | Packed |
NULLABLE | Null |
INDEX_TYPE | Index_type |
COMMENT | Comment |
INDEX_COMMENT | Index_comment |
可以通过以下的语句查询信息:
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name = 'tbl_name' AND table_schema = 'db_name'
类似于
SHOW INDEX FROM tbl_name FROM db_name
也可以查看表里面有多少个索引:
select distinct INDEX_NAME from information_schema.statistics WHERE TABLE_SCHEMA='qiandai' and TABLE_NAME='t1';
再SHOW INDEX FROM tbl_name FROM db_name查看每个索引的详细信息。
2: TABLESPACES
这个表是不提供关于innodb的表空间信息的,简略看一下就OK额了。我们只基于innodb来看
INFORMATION_SCHEMA Name | SHOW Name |
TABLESPACE_NAME | |
ENGINE | |
TABLESPACE_TYPE | 类型 |
LOGFILE_GROUP_NAME | |
EXTENT_SIZE | |
AUTOEXTEND_SIZE | |
MAXIMUM_SIZE | |
NODEGROUP_ID | |
TABLESPACE_COMMENT |
3:TABLE_CONSTRAINTS
这个表提供的是 表的相关的约束信息,表结构如下:
INFORMATION_SCHEMA Name | SHOW Name |
CONSTRAINT_CATALOG | 描述 |
CONSTRAINT_SCHEMA | 相关schema |
CONSTRAINT_NAME | 名字 |
TABLE_SCHEMA | 表schema |
TABLE_NAME | 表名 |
CONSTRAINT_TYPE | 约束的类型 |
可以通过以下语句查看表的约束都有那些。
select * from information_schema.TABLE_CONSTRAINTS where TABLE_SCHEMA='qiandai' and table_name='t1' ;
4:TABLE_PRIVILEGES
提供的是表权限相关信息,信息是从 mysql.tables_priv 表中加载的 ,所以说这个表是内存表,每次重新重启都会重新加载,或者FLUSH PRIVILEGES的时候都会重新加载一次。
INFORMATION_SCHEMA Name | SHOW Name |
GRANTEE | |
TABLE_CATALOG | |
TABLE_SCHEMA | |
TABLE_NAME | |
PRIVILEGE_TYPE | |
IS_GRANTABLE |
PRIVILEGE_TYPE可能会包含以下的权限:
SELECT, INSERT, UPDATE, REFERENCES, ALTER, INDEX, DROP, CREATE VIEW.
5: USER_PRIVILEGES
提供的是表权限相关信息,信息是从 mysql.user 表中加载的 ,所以说这个表是内存表,每次重新重启都会重新加载,或者FLUSH PRIVILEGES的时候都会重新加载一次
INFORMATION_SCHEMA Name | SHOW Name |
GRANTEE | |
TABLE_CATALOG | |
PRIVILEGE_TYPE | |
IS_GRANTABLE |