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  
 
 
 
 
posted @ 2017-05-22 22:03  M哥  阅读(1028)  评论(0编辑  收藏  举报