一、information_schema庫

information_schema庫中的表,保存的是Mysql的元數(shù)據(jù)。
官網(wǎng)元數(shù)據(jù)表介紹
InnoDB相關(guān)的表介紹
庫中有表:

+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| CHARACTER_SETS                        |
| COLLATIONS                            |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS                               |
| COLUMN_PRIVILEGES                     |
| ENGINES                               |
| EVENTS                                |
| FILES                                 |
| GLOBAL_STATUS                         |
| GLOBAL_VARIABLES                      |
| KEY_COLUMN_USAGE                      |
| PARAMETERS                            |
| PARTITIONS                            |
| PLUGINS                               |
| PROCESSLIST                           |
| PROFILING                             |
| REFERENTIAL_CONSTRAINTS               |
| ROUTINES                              |
| SCHEMATA                              |
| SCHEMA_PRIVILEGES                     |
| SESSION_STATUS                        |
| SESSION_VARIABLES                     |
| STATISTICS                            |
| TABLES                                |
| TABLESPACES                           |
| TABLE_CONSTRAINTS                     |
| TABLE_PRIVILEGES                      |
| TRIGGERS                              |
| USER_PRIVILEGES                       |
| VIEWS                                 |
| INNODB_CMP_RESET                      |
| INNODB_TRX                            |
| INNODB_CMPMEM_RESET                   |
| INNODB_LOCK_WAITS                     |
| INNODB_CMPMEM                         |
| INNODB_CMP                            |
| INNODB_LOCKS                          |
+---------------------------------------+

1. CHARACTER_SETS

保存所有Mysql可用的字符集。相當(dāng)于命令:SHOW CHARACTER SET

2. COLLATIONS

提供了關(guān)于各字符集的對照信息

3. COLLATION_CHARACTER_SET_APPLICABILITY

4. COLUMNS

這個表保存的是所有數(shù)據(jù)庫的列信息

TABLE_CATALOG
TABLE_SCHEMA 庫名
TABLE_NAME 表名
COLUMN_NAME 列名
ORDINAL_POSITION 應(yīng)該是該列在該表中的順序
COLUMN_DEFAULT 列的默認(rèn)值
IS_NULLABLE 是否可以為NULL
DATA_TYPE 數(shù)據(jù)類型
CHARACTER_MAXIMUM_LENGTH 數(shù)據(jù)的長度
CHARACTER_OCTET_LENGTH 數(shù)據(jù)的存儲長度
NUMERIC_PRECISION
NUMERIC_SCALE
CHARACTER_SET_NAME 列的字符編碼
COLLATION_NAME
COLUMN_TYPE 列的類型,例如varchar(20)
COLUMN_KEY 如果等于PRI,表示是主鍵
EXTRA 定義列的時候的其他信息,例如自增,主鍵
PRIVILEGES 操作權(quán)限有:select,insert,update,references ( 官方說明 )
COLUMN_COMMENT 列的備注

例子:

***************************[ 1. row ]***************************TABLE_CATALOG            | def
TABLE_SCHEMA             | test
TABLE_NAME               | sleep_account
COLUMN_NAME              | key
ORDINAL_POSITION         | 1
COLUMN_DEFAULT           | None
IS_NULLABLE              | NO
DATA_TYPE                | int
CHARACTER_MAXIMUM_LENGTH | None
CHARACTER_OCTET_LENGTH   | None
NUMERIC_PRECISION        | 10
NUMERIC_SCALE            | 0
CHARACTER_SET_NAME       | None
COLLATION_NAME           | None
COLUMN_TYPE              | int(11)
COLUMN_KEY               | PRI
EXTRA                    | auto_increment
PRIVILEGES               | select,insert,update,references
COLUMN_COMMENT           |

5. COLUMN_PRIVILEGES

列的特權(quán)信息,應(yīng)該和COLUMN表的PRIVILEGES的功能差不多的。

6. ENGINES

存儲Mysql支持的數(shù)據(jù)庫引擎類型,相當(dāng)于命令SHOW ENGINES
ENGINE 引擎名
SUPPORT 是否支持,Yes,No,Default(默認(rèn))
COMMENT 引擎的說明
TRANSACTIONS 是否支持事務(wù)
XA
SAVEPOINTS

***************************[ 1. row ]***************************ENGINE       | InnoDB
SUPPORT      | DEFAULT
COMMENT      | Supports transactions, row-level locking, and foreign keys
TRANSACTIONS | YES
XA           | YES
SAVEPOINTS   | YES

7. EVENTS

保存計劃事件(scheduled events)的信息,相當(dāng)于命令 show events

8. FILES

保存數(shù)據(jù)庫文件的存儲信息,當(dāng)使用Mysql集群的時候有用,也就是NDB。

9.GLOBAL_STATUS

保存Mysql 的全局狀態(tài)。全局是相對于Session而言的,Session是指單個Mysql連接,全局可以理解為自從Mysql啟動以來,所有的連接,產(chǎn)生的狀態(tài)。

10.GLOBAL_VARIABLES

保存Mysql的全局參數(shù)。
狀態(tài)(status)是隨著Mysql的運行,會變化的,
參數(shù)(variable)只有主動修改,才會變化的。
可以使用show status 語法查看

11.KEY_COLUMN_USAGE

保存所有約束(CONSTRAINT)
CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA 約束的數(shù)據(jù)庫
CONSTRAINT_NAME 約束名
TABLE_CATALOG
TABLE_SCHEMA 約束屬于哪個數(shù)據(jù)庫
TABLE_NAME 約束屬于哪個數(shù)據(jù)表
COLUMN_NAME 約束的列名
ORDINAL_POSITION 排序權(quán)重
POSITION_IN_UNIQUE_CONSTRAINT
REFERENCED_TABLE_SCHEMA
REFERENCED_TABLE_NAME
REFERENCED_COLUMN_NAME

例如:
test庫的account表中,主鍵是key,就會有下面一行記錄

CONSTRAINT_CATALOG            | def
CONSTRAINT_SCHEMA             | test
CONSTRAINT_NAME               | PRIMARY
TABLE_CATALOG                 | def
TABLE_SCHEMA                  | test
TABLE_NAME                    | account
COLUMN_NAME                   | key
ORDINAL_POSITION              | 1POSITION_IN_UNIQUE_CONSTRAINT | None
REFERENCED_TABLE_SCHEMA       | None
REFERENCED_TABLE_NAME         | None
REFERENCED_COLUMN_NAME        | None

12.PARAMETERS

保存了所有已定義的PARAMETERS 信息

13.PARTITIONS

保存所有分區(qū)表信息

14.PLUGINS

保存所有Mysql已裝載的插件信息

15. PROCESSLIST

保存Mysql的連接信息,一行記錄代表一個數(shù)據(jù)庫連接,代表一個Mysql服務(wù)線程。相當(dāng)于SHOW PROCESSLIST
查看該表會帶來一定的性能影響,因為需要一個鎖,查看Threads表卻不會。
而且查看Threads表會顯示后臺線程,PROCESSLIST缺不會顯示。
這里的線程可以使用KILL語法來殺掉

ID 連接ID,根據(jù)這個ID來執(zhí)行KILL命令
USER 連接的用戶名
HOST 連接的客戶端的IP,格式是IP:PORT。如果想查看一個連接對應(yīng)的是哪個客戶端進程,就可以這樣:假如HOST='192.168.1.1:23501',去到192.168.1.1這臺機,通過命令netstat -apn|grep 23501,看到這樣的結(jié)果:

192.168.1.1:23501           192.168.1.10:3306            ESTABLISHED 14599/python2.7

就可以知道這個Mysql的連接的客戶端是14599/python2.7這個進程

DB 連接的數(shù)據(jù)庫
COMMAND 線程在執(zhí)行的命令,所有命令。常用的命令有:SLeep(等待客戶端發(fā)送SQL),Query(正在執(zhí)行一個SQL)
TIME 單位是秒,表示這個連接處于現(xiàn)在這個命令多久了
STATE 線程執(zhí)行的命令的細節(jié)描述,常見的描述。一般這個狀態(tài)持續(xù)的時間是很短的,如果持續(xù)了很久,就表明有問題了。常見的描述:Updating(正在更新數(shù)據(jù)),executing(正在執(zhí)行),Sending data(發(fā)送數(shù)據(jù)給客戶端)。這里的描述和show profile for query 1;里的執(zhí)行步驟是對應(yīng)的
INFO 正在執(zhí)行的SQL語句,如果沒有執(zhí)行SQL,為空。

例子:

ID      | 51
USER    | root
HOST    | localhost:59487
DB      | information_schema
COMMAND | Query
TIME    | 0
STATE   | executing
INFO    | select * from PROCESSLIST limit 1

16. PROFILING

保存性能分析的數(shù)據(jù),相當(dāng)于 SHOW PROFILES。只有當(dāng)session的profiling 參數(shù)設(shè)置為1,這個表才有數(shù)據(jù)。

17.REFERENTIAL_CONSTRAINTS

保存外鍵的數(shù)據(jù)。

18.ROUTINES

保存routines 信息,包括procedures 和 functions,但是不包含用戶定于的functions。

19.SCHEMATA

保存數(shù)據(jù)庫的信息,一行記錄是一個數(shù)據(jù)庫(database),類似命令show databases;

20.SCHEMA_PRIVILEGES

保存數(shù)據(jù)庫的權(quán)限信息。
GRANTEE 權(quán)限擁有者,格式是'user_name'@'host_name',例如root'@'192.168.137.1
TABLE_CATALOG
TABLE_SCHEMA 權(quán)限對應(yīng)的數(shù)據(jù)庫
PRIVILEGE_TYPE 權(quán)限類型
IS_GRANTABLE 是否可以分配權(quán)限給其他擁有者,一般為NO

       GRANTEE: 'root'@'192.168.137.1' TABLE_CATALOG: def  TABLE_SCHEMA: ggy_wrdPRIVILEGE_TYPE: SELECT  IS_GRANTABLE: NO

這個表示擁有者'root'@'192.168.137.1'有權(quán)限對數(shù)據(jù)庫ggy_wrd執(zhí)行SELECT的操作

21.SESSION_STATUS

保存SESSION的狀態(tài),類似于GLOBAL_STATUS

22.SESSION_VARIABLES

保存SESSION的變量,類似于GLOBAL_BARIABLES

23.STATISTICS

保存索引信息。相當(dāng)于show index from tbl_name

TABLE_CATALOG
TABLE_SCHEMA 數(shù)據(jù)庫名
TABLE_NAME 表名
NON_UNIQUE 是否唯一
INDEX_SCHEMA
INDEX_NAME
SEQ_IN_INDEX
COLUMN_NAME 列名
COLLATION
CARDINALITY
SUB_PART
PACKED
NULLABLE
INDEX_TYPE 索引類型,一般是BTREE
COMMENT
INDEX_COMMENT

例子:

TABLE_CATALOG: def TABLE_SCHEMA: db_kklauncher   TABLE_NAME: sleep_local_account   NON_UNIQUE: 0 INDEX_SCHEMA: db_kklauncher   INDEX_NAME: PRIMARY SEQ_IN_INDEX: 1  COLUMN_NAME: key    COLLATION: A  CARDINALITY: 10673     SUB_PART: NULL       PACKED: NULL     NULLABLE:    INDEX_TYPE: BTREE      COMMENT: INDEX_COMMENT:

24.TABLES

保存數(shù)據(jù)表信息。類似show tables。
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME 表名
TABLE_TYPE 表的類型
ENGINE 表的存儲引擎
VERSION 表的版本
ROW_FORMAT
TABLE_ROWS 表的行數(shù)
AVG_ROW_LENGTH 平均一行的長度
DATA_LENGTH 數(shù)據(jù)長度
MAX_DATA_LENGTH 最大一行的數(shù)據(jù)長度
INDEX_LENGTH 索引的長度
DATA_FREE
AUTO_INCREMENT 自增到哪個數(shù)
CREATE_TIME 創(chuàng)建時間
UPDATE_TIME 最后修改表結(jié)構(gòu)的時間
CHECK_TIME
TABLE_COLLATION 表的編碼
CHECKSUM
CREATE_OPTIONS
TABLE_COMMENT

TABLE_CATALOG   | def
TABLE_SCHEMA    | db_kklauncher
TABLE_NAME      | sleep_local_account
TABLE_TYPE      | BASE TABLE
ENGINE          | InnoDB
VERSION         | 10ROW_FORMAT      | Compact
TABLE_ROWS      | 10095AVG_ROW_LENGTH  | 365DATA_LENGTH     | 3686400MAX_DATA_LENGTH | 0INDEX_LENGTH    | 327680DATA_FREE       | 415236096AUTO_INCREMENT  | 24342CREATE_TIME     | 2016-12-27 16:31:56UPDATE_TIME     | NoneCHECK_TIME      | NoneTABLE_COLLATION | utf8_general_ci
CHECKSUM        | NoneCREATE_OPTIONS  | 
TABLE_COMMENT   |

25.TABLESPACES

保存數(shù)據(jù)表占用的空間,如果表引擎是InnoDB,需要去查 INNODB_SYS_TABLESPACES 和INNODB_SYS_DATAFILES

26. TABLE_CONSTRAINTS

保存表的約束信息。

27.TABLE_PRIVILEGES

保存表的權(quán)限信息。如果賦予擁有者一個表的權(quán)限,TABLE_PRIVILEGES表就會有數(shù)據(jù)。如果是賦予擁有者一個庫的權(quán)限,這里就不會有數(shù)據(jù),只會在SCHEMA_PRIVILEGES表里面有數(shù)據(jù)。
這里的數(shù)據(jù)和SCHEMA_PRIVILEGES的數(shù)據(jù)意義是一樣的,只不過多了TABLE_SCHEMA這列。

28.TRIGGERS

保存觸發(fā)器的信息

29.USER_PRIVILEGES

這里會存儲用戶的權(quán)限。

30.VIEWS

保存視圖信息

31.INNODB_CMP_RESET和INNODB_CMP

保存被壓縮的InnoDB表的信息

32.INNODB_TRX

保存InnoDB的事務(wù)信息(不會包含只讀的事務(wù))。
官方介紹

trx_id 事務(wù)ID,唯一的,只讀事務(wù)沒有生成ID
trx_state 當(dāng)前的狀態(tài),取值:RUNNING(正在執(zhí)行), LOCK WAIT(等待鎖), ROLLING BACK(回滾), and COMMITTING(提交中)
trx_started 事務(wù)啟動的時間
trx_requested_lock_id 如果狀態(tài)是LOCK WAIT,這里顯示的是正在等待的鎖的ID,對應(yīng)INNODB_LOCKS表的LOCK_ID列
trx_wait_started 如果狀態(tài)是LOCK WAIT,這里顯示的是該事務(wù)等待鎖等待了多久
trx_weight 事務(wù)的權(quán)重,權(quán)重越低,Mysql越先執(zhí)行一個事務(wù),這個主要用于解決死鎖
trx_mysql_thread_id 事務(wù)對應(yīng)的線程ID,和PROCESSLIST表的ID列對應(yīng)
trx_query 事務(wù)正在執(zhí)行的SQL
trx_operation_state 事務(wù)當(dāng)前的操作狀態(tài),如果沒有,顯示NULL
trx_tables_in_use 事務(wù)處理當(dāng)前的SQL,也就是trx_query里的SQL,需要打開多少個表
trx_tables_locked 事務(wù)處理當(dāng)前的SQL需要上鎖多少個表的行鎖
trx_lock_structs 有多少個鎖會被該事務(wù)保留,也就是執(zhí)行該事務(wù)需要鎖住多少條行記錄
trx_lock_memory_bytes 鎖需要耗用的內(nèi)存
trx_rows_locked 事務(wù)處理當(dāng)前的SQL需要上鎖多少個行鎖,這只是個近似值
trx_rows_modified 事務(wù)需要修改或新增多少行內(nèi)容
trx_concurrency_tickets 該線程被調(diào)度前,需要執(zhí)行多少工作
trx_isolation_level 事務(wù)的隔離級別
trx_unique_checks 是否打開唯一檢查(unique_checks)
trx_foreign_key_checks 是否打開外鍵唯一檢查( foreign key checks)
trx_last_foreign_key_error 上一次外鍵錯誤信息
trx_adaptive_hash_latched
trx_adaptive_hash_timeout

http://www.cnblogs.com/Xjng/p/7136424.html