information_schema是mysql自带的库,不同mysql版本,库中表数量不一样。本次研究的是5.7.30版本,里面有61个表。
1、character_sets表
记录了mysql支持的所有的字符集及默认的比对方法。对应show charset;
2、collations表
记录了mysql支持的所有的比对方法及其对应的字符集。对应show collation;
3、columns表
记录了当前mysql实例的所有库的所有表的所有字段。table_schema字段表示库名,table_name字段表示表名,column_name字段表示列名,ordinal_position字段表示是第几列,等等,还有其他很多字段
4、engines表
记录了mysql支持的所有引擎及各引擎特性。
5、innodb_trx表
记录了当前mysql实例正在执行的事务。
trx_id表示事务id,trx_state表示事务状态,trx_started表示事务开始时间,trx_requested_lock_id表示事务想要获取的锁的id,trx_mysql_thread_id表示事务对应的连接id(connection_id),trx_tables_locked表示事务锁了几个表,trx_rows_locked表示事务锁了几行数据,trx_isolation_level表示事务隔离级别,还有其他字段。。
6、innodb_locks表
记录了当前mysql实例所有的锁及持锁事务。
7、innodb_lock_waits表
记录了当前mysql实例等待锁的事务。
什么情况下,innodb_trx、innodb_locks、innodb_lock_waits表会有数据呢???