Percona Toolkit 神器全攻略(性能类)
Percona Toolkit 神器全攻略(性能类)
Percona Toolkit 神器全攻略系列共八篇,前文回顾:
全文约定:
$
为命令提示符、greatsql>
为 GreatSQL 数据库提示符。在后续阅读中,依据此约定进行理解与操作
性能类
在 Percona Toolkit 中性能类共有以下工具
pt-index-usage
:分析日志中索引使用情况,并出报告pt-pmp
:查询结果跟踪,并汇总跟踪结果pt-table-usage
:分析日志中查询并分析表使用情况pt-visual-explain
:格式化执行计划pt-mongodb-index-check
:MongoDB 索引执行检查pt-mongodb-query-digest
:通过聚合来自 MongoDB 查询分析器的查询来报告查询使用统计信息
pt-index-usage
概要
从慢查询日志中读取查询并分析它们如何使用索引
用法
pt-index-usage [OPTIONS] [FILES]
选项
该工具所有选项如下
最佳实践
该工具连接到 GreatSQL 数据库服务器,读取查询日志,并使用 EXPLAIN 询问 GreatSQL 将如何使用每个查询。当完成时,打印出一个关于查询没有使用的索引
也可以将打印出来的结果存入到数据库当中
进入到数据库中就可以看到自动创建了四张表
index_alternatives:此表记录了索引的替代方案。它包含了关于哪些索引可以替代其他索引的信息。
index_usage:这张表跟踪了索引的使用情况。它记录了哪些索引被查询使用,以及它们的效率和性能。
indexes:此表包含了数据库中所有表的索引信息。它记录了每个表的索引名称、列、类型等。
tables:这张表记录了数据库中的所有表。它包含了表的名称、行数、大小等信息。
额外补充
在 MySQL/GreatSQL 5.7 版本中,sys schema 提供了以下几张表,有助于分析数据库索引使用情况
schema_index_statistics
:此表显示有关索引的统计信息,包括索引的大小、行数、唯一性和其他相关指标。它对于优化查询和了解索引的使用情况非常有用schema_redundant_indexes
:这个表显示重复索引或被其他索引替代的索引。具体来说,它列出了哪些索引是多余的,以及哪些索引是主导索引(使多余索引变得多余)schema_unused_indexes
:这个表显示那些没有被使用的索引。如果某个索引长时间没有被查询,就可能是多余的。通过检查这个表,您可以找到可以删除或优化的未使用索引
在 MySQL/GreatSQL 8.0 版本中,也有几张表关于索引的
INFORMATION_SCHEMA.INNODB_INDEXES
表提供有关InnoDB
索引的元数据INFORMATION_SCHEMA.INDEX_STATISTICS
表提供了索引统计信息
pt-pmp
概要
查询结果跟踪,并汇总跟踪结果。获取进程的堆栈信息,并且对这些结果进行汇总
进程的堆栈信息是通过 gdb 获取的,所以在获取过程中,会对数据库的性能有一定的影响
用法
pt-pmp [OPTIONS] [FILES]
选项
该工具所有选项如下
最佳实践
根据进程名汇总堆栈信息
使用该工具需要安装 gdb,否则报错 “gdb: command not found”
汇总 pstack 获取的结果
pt-table-usage
概要
分析日志中查询并分析表使用情况通。过读取日志(例如:慢查询日志)中的查询语句,然后分析语句是如何使用表的,即:表之间的数据流向
用法
pt-table-usage [OPTIONS] [FILES]
选项
最佳实践
分析语句结构
个人觉得比较鸡肋,还不如使用 Explain
分析慢查询日志
Query_id:查询的 ID
SELECT:从表中获取数据
JOIN:已连接的表
WHERE:用于过滤结果的表
TLIST:查询语句中访问的表,通常是产生笛卡尔积
pt-visual-explain
概要
用于格式化 MySQL/GreatSQL 执行计划
用法
pt-visual-explain [OPTIONS] [FILES]
选项
最佳实践
直接使用即可
此时会输出该语句格式化后的执行计划
pt-visual-explain 的信息有限,如果想获得更多详细信息,最好还是进入数据库查看执行计划
版权声明: 本文为 InfoQ 作者【GreatSQL】的原创文章。
原文链接:【http://xie.infoq.cn/article/45b5a49b4cc403368fae507ff】。文章转载请联系作者。
评论