Percona-tookit学习笔记(四)

pt-upgrade

作用:

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

示例:

    # pt-upgrade-uroot -proot h=‘192.168.2.11‘ h=‘192.168.2.12‘ /data/mysql/node1-slow.log   比较2个节点的日志情况

如下图:

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

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

    # 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查看索引的使用情况

#pt-index-usage /data/mysql/88-slow.log -uroot -proot -h localhost
或者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

例如:

    # mysql-uroot -proot -e ‘explain select * from b2b.ecs_goods‘ > a.sql
    # pt-visual-explain/root/a.sql

或者通过管道一步处理:

    # 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有何不同

# pt-config-diff h=‘192.168.2.11‘h=‘192.168.2.12‘ -uroot -proot  【这个更详细】

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

# pt-config-diff /etc/my.cnf  h=‘192.168.2.12‘ -uroot -proot  【这个很简略】

时间: 2024-12-28 11:59:08

Percona-tookit学习笔记(四)的相关文章

Caliburn.Micro学习笔记(四)----IHandle&lt;T&gt;实现多语言功能

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能 说一下IHandle<T>实现多语言功能 因为Caliburn.Micro是基于MvvM的UI与codebehind分离, binding可以是双向的所以我们想动态的实现多语言切换很是方便今天我做一个小demo给大家提供一个思路 先看一下效果 点击英文  变成英文状态点chinese就会变成中文                          源码的下载地址在文章的最下边 多语言用的是资源文件建

代码管理工具 --- git的学习笔记四《重新整理git(1)》

1.创建版本库 mkdir  创建目录 cd  地址,到该地址下 pwd 显示当前目录 1.创建目录 $ mkdir startGit $ cd startGit $ pwd 显示当前目录 或者cd到桌面,然后再创建目录 2.初始化版本库 $ git init 初始化仓库 提示信息:Initialized empty Git repository in /Users/xingzai/Desktop/startGit/.git/ 建立一个空的git仓库在/Users/xingzai/Desktop

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

小猪的数据结构学习笔记(四)

小猪的数据结构学习笔记(四) 线性表之静态链表 --转载请注明出处:coder-pig 本章引言: 在二,三中中我们分别学习了顺序表中的线性表与单链表,线性表有点类似于 我们前面所学的数组,而单链表使用的最多的是指针,这里问个简单的问题, 如果是在以前没有指针的话,前辈先人们怎么实现单链表呢?大家思考下! 没有指针,那么用什么来代替呢?前辈先人们非常机智,想出了使用下标+游标的方式 来实现单链表的效果!也就是今天要讲的--静态链表! 当然你也可以直接跳过本章,因为有了单链表就没有必要用静态链表了

Swift学习笔记四:数组和字典

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten

NLTK学习笔记(四):自然语言处理的一些算法研究

自然语言处理中算法设计有两大部分:分而治之 和 转化 思想.一个是将大问题简化为小问题,另一个是将问题抽象化,向向已知转化.前者的例子:归并排序:后者的例子:判断相邻元素是否相同(与排序). 这次总结的自然语言中常用的一些基本算法,算是入个门了. 递归 使用递归速度上会受影响,但是便于理解算法深层嵌套对象.而一些函数式编程语言会将尾递归优化为迭代. 如果要计算n个词有多少种组合方式?按照阶乘定义:n! = n*(n-1)*...*1 def func(wordlist): length = le

Android学习笔记四:添加Source

问题描述 Source not foundThe JAR file D:\.....\sdk\platforms\android-20\android.jar has no source attachment. 问题原因及解决办法 1. 使用SDK Manager下载最新版本的Sources for Android SDK 一般文件下载目录默认在SDK下的sources文件中即 \adt-bundle-windows-x86_64-20130522\sdk\sources\android-20

【Unity 3D】学习笔记四十二:粒子特效

粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果.要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system即可 粒子发射器 粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等.在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性: emit:是否是使用粒子发射器. min size:粒子最小尺寸. max size:粒子最大尺寸. min energy:粒子的最小生命周期

WEB前端学习笔记 四

接上一篇,web学习笔记 四,在此感谢您对此篇笔记的认可,但转发时请注明文章出自网知博学. 2.0  html的语法格式 html的标签要写在尖括号中 :<> 在在英文输入法状态下,按住shift键然后再按它左侧的尖括号就可了, 先学习一个简单的h1标签,是个标题标签,在html中这样写: <h1>我在h1标签中,我就是标题</h1> 那么h1标签中所包裹的文字,就标记成标题了.通过浏览器的解析后在页面上显示出来的效果就是字体加粗,加黑,和word中的标题性质一样! 大

初探swift语言的学习笔记四(类对象,函数)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! swift扩展了非常多功能和属性,有些也比較奇P.仅仅有慢慢学习,通过经验慢慢总结了. 以下将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // C