1. 程式人生 > >information_schema系列六(索引,表空間,權限,約束相關表)

information_schema系列六(索引,表空間,權限,約束相關表)

wid mysql 表名 car cin end _id tables code

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

information_schema系列六(索引,表空間,權限,約束相關表)