书接上回
上一篇的地址:https://blog.csdn.net/m0_46661713/article/details/127228169
5、InnoDB层的锁、事务统计信息字典表。
- innodb_locks
提供查询innodb引擎中正在请求的且同时被其他事务阻塞的锁信息。(即如果没有发生不同事务之间的锁等待信息在这里是看不到的)可以诊断高并发下锁争用信息。该表为Memory引擎临时表,访问该表的用户需要有process权限。
- innodb_trx
该表提供查询正在运行的事务的信息,包括事务是否等待锁,事务什么时候开始,事务正在执行的SQL语句。该表为Memory引擎临时表,访问该表的用户需要有process权限。
trx_state:事务的状态(running,lock wait)
trx_requested_lock_id:等待的锁的id(可以通过innodb_locks表查询持有该锁的线程)
trx_isolation_level:事务的隔离级别
-
innodb_buffer_page_lru
提供查询缓冲池中页面信息,与innodb_buffer_page不同,innodb_buffer_page_lru提供查询缓冲池中的页面何时加入LRU链表,以及缓冲区不足时逐出哪些页。 -
innodb_lock_waits
一行代表一个锁等待关系,一个锁等待关系包括一个等待锁的事务及其正在等待锁的信息,一个持有锁的事务及其持有锁的信息。该表为Memory引擎临时表,访问该表的用户需要有process权限。
事务24331持有90:3:2这把锁,然后事务24332需要这把锁。
-
INNODB_TEMP_TABLE_INFO
提供查询有关在InnoDB实例中当前处于活动状态的用户(只对已建立连接的用户有效,断开的用户连接对应的临时表会被自动删除)创建的InnoDB临时表的信息。它不提供查询优化器使用的内部InnoDB临时表的信息。该表在首次查询时创建。该表为Memory引擎临时表,查询该表的用户需要有process权限。 -
INNODB_BUFFER_PAGE
提供查询关于缓冲池中的页相关信息。该表为Memory引擎临时表,查询该表的用户需要有process权限。 -
INNODB_METRICS
提供查询InnoDB更为详细的性能问题。 -
INNODB_BUFFER_POOL_STATS
提供查询缓冲池中一些状态信息。
6、InnoDB层的全文索引字典表
- INNODB_FT_CONFIG
提供查询innodb表的全文索引和关联的元数据信息。
在查询该表之前要先设置innodb_ft_aux_table=“db_name/table_name”来指定查询的库名和表名(值得注意的是如果指定的数据库表中没有全文索引,那么设置这个值是不被允许的)。
先给peng_db.onepiece这个表添加全文索引,再设置innodb_ft_aux_table的值
innodb_ft_config表查询的数据
- INNODB_FT_BEGIN_DELETED
仅用于在optimize table语句执行维护操作期间存放INNODB_FT_DELETED表的快照数据使用,一般用不到。 - INNODB_FT_DELETED
提供查询Innodb表的全文索引中删除的行信息,为了避免Innodb全文索引的DML操作期间进行昂贵的索引重排操作。在执行optimize table语句时会清空该表。
指定innodb_ft_aux_table为onepiece表,删除id为4的一行数据,删除的数据保存到了innodb_ft_deleted表中,DOC_ID并不是主键id,而是全文索引的id
- INNODB_FT_DEFAULT_STOPWORD
该表为默认的全文索引停用词表,提供查询停用词列表值。启动停用词表要求参数innodb_ft_enable_stopword=NO,默认是开启的。
关于停用词表选用优先级的问题,第一优先级是innodb_ft_user_stopword_table参数指定的停用词表,第二优先级是innodb_ft_server_stopword_table参数停用词表,第三优先级词表是默认的INNODB_FT_DEFAULT_STOPWPRD,前面两个参数默认是空值。
- INNODB_FT_INDEX_TABLE
提供查询关于innodb表的全文索引中用于反向文本查找的倒排索引的分词信息。
optimize table 这个命令似乎也会清空INNODB_FT_INDEX_TABLE这个表(网上没有找到相关资料)。
反向索引:mysql全文索引在实现时,有正向索引,也就是DOC_ID,一个DOC_ID指向一行数据的索引,反向索引会将文本段进行分词,通过词的集合进行交集运算可以很快的在长文本段中进行搜索
- INNODB_FT_INDEX_CACHE
提供查询包含全文索引的InnoDB存储引擎表中新插入行的全文索引标记信息。它存在的目的是为了避免在DML操作期间进行昂贵的索引重组,新插入的全文索引的单词信息被单独存储在该表中,直到对表执行了OPTIMIZE TABLE语句,或者关闭了服务器,或者高速缓存中存放的信息大小超过了innodb_ft_cache_size或innodb_ft_total_cache_size系统配置参数指定的大小时才会执行清理。
(侧面说明了在执行插入操作时,全文索引是不会更新的)。
7、InnoDB层压缩字典相关表
先空着吧,感觉没啥用。