前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Percona-tookit学习笔记(四)

Percona-tookit学习笔记(四)

作者头像
保持热爱奔赴山海
发布2019-09-18 14:57:06
4310
发布2019-09-18 14:57:06
举报
文章被收录于专栏:饮水机管理员饮水机管理员

pt-upgrade

作用:

    查看慢查询中对应的查询SQL在两个服务器上运行的结果

示例:

代码语言:javascript
复制
    # pt-upgrade-uroot -proot h='192.168.2.11' h='192.168.2.12' /data/mysql/node1-slow.log   比较2个节点的日志情况

如下图:

【注意:下图是因为我故意将2个节点的慢查询日志弄改的不一样,正常的话应该全是0】

wKiom1cyyubCYaxSAAAYYAnjihk492.png
wKiom1cyyubCYaxSAAAYYAnjihk492.png

查看某sql文件在两个节点执行的结果:

代码语言:javascript
复制
    # pt-upgrade-uroot -proot h='192.168.2.11' h='192.168.2.12' /root/a.sql

其它的功能暂时不会使用,待后续复习补充。

pt-index-usage

作用:

    从log文件中读取插叙语句,并用explain分析他们是如何利用索引。完成分析之后会生成一份关于索引没有被查询使用过的报告。

    工具连接到MySQL数据库服务器,通读查询日志,使用EXPLAIN 命令去问MySQL如何执行每一个QUERY操作的。当这些完成,它会打印没有使用索引的报告出来。

例子:

从慢查询中的SQL查看索引的使用情况

代码语言:javascript
复制
#pt-index-usage /data/mysql/88-slow.log -uroot -proot -h localhost
代码语言:javascript
复制
或者pt-index-usage /data/mysql/88-slow.log  -uroot -proot -h localhost --quiet > index.log # 将结果写入文件,不输出到屏幕

结果如下:

ALTER TABLE `b2b`.`ecs_nav` DROPKEY `ifshow`, DROP KEY `type`; -- type:non-unique

ALTER TABLE `b2b`.`ecs_order_action`DROP KEY `order_id`; -- type:non-unique

ALTER TABLE`b2b`.`ecs_order_goods` DROP KEY `goods_id`, DROP KEY `order_id`; --type:non-unique

ALTER TABLE `b2b`.`ecs_order_info`DROP KEY `agency_id`, DROP KEY `extension_code`, DROP KEY `order_status`, DROPKEY `pay_id`, DROP KEY `pay_status`, DROP KEY `rebate`, DROP KEY `shipping_id`,DROP KEY `shipping_status`, DROP KEY `supplier_id`, DROP KEY `user_id`; --type:non-unique

ALTER TABLE `b2b`.`ecs_region`DROP KEY `agency_id`, DROP KEY `parent_id`, DROP KEY `region_type`; --type:non-unique

ALTER TABLE `b2b`.`ecs_role` DROPKEY `user_name`; -- type:non-unique

ALTER TABLE `b2b`.`ecs_sessions`DROP KEY `expiry`; -- type:non-unique

ALTER TABLE`b2b`.`ecs_sessions_data` DROP KEY `expiry`; -- type:non-unique

......省略部分结果......

说明:

    1、可以看到很多-- type:non-unique 非唯一索引

    2、在读取完日志里面所有的事件之后,对于每一个没有用到的索引,工具打印出DROP语句。忽略了被日志里面任意查询访问的表索引,避免不必要的结果。

手册上说可以将结果保存到数据库中,如:

pt-index-usage/data/dbdata/localhost-slow.log --host=localhost --user=root --password=root  --no-report --create-save-results-database

我实验测试未成功,不知什么回事。希望您解决了给我留言。

pt-pmp

作用:

    为查询程序执行聚合的GDB堆栈跟踪,先进性堆栈跟踪,然后将跟踪信息汇总。

pt-visual-explain

格式:

    pt-visual-explain<file_containing_explain_output>

    pt-visual-explain-c <file_containing_query>

    mysql-e "explain select * from mysql.user" | pt-visual-explain

例如:

代码语言:javascript
复制
    # mysql-uroot -proot -e 'explain select * from b2b.ecs_goods' > a.sql
    # pt-visual-explain/root/a.sql

    或者通过管道一步处理:

代码语言:javascript
复制
    # mysql-uroot -proot -e 'explain select * from b2b.ecs_goods'|pt-visual-explain

pt-config-diff

说明:

    比较MySQL节点间配置文件的区别。

    pt-config-diff diffs MySQL configuration files and server variables. CONFIG canbe a filename or a DSN.  At least twoCONFIG sources must be given.  Likestandard Unix diff, there is no output if there are no differences.

示例:

比较本地与远程的192.168.2.12上的my.cnf有何不同

代码语言:javascript
复制
# pt-config-diff h='192.168.2.11'h='192.168.2.12' -uroot -proot  【这个更详细】
wKiom1cyy2bCxz_DAAB5uJHL-p0355.png
wKiom1cyy2bCxz_DAAB5uJHL-p0355.png

比较本地的/etc/my.cnf与远程的192.168.2.12上的my.cnf有何不同

代码语言:javascript
复制
# pt-config-diff /etc/my.cnf  h='192.168.2.12' -uroot -proot  【这个很简略】
wKioL1cyzFbh3GLSAAAmqJoyKCc208.png
wKioL1cyzFbh3GLSAAAmqJoyKCc208.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-05-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档