一、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