这是 pt-fingerprintp 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
pt-fingerprint - 将查询转换为指纹。
概要
用法:pt-fingerprint [选项] [文件]
pt-fingerprint 将查询转换为指纹。 使用 --query 选项,转换
选项的值进入指纹。 没有选项,将命令行参数视为
文件并从文件中读取和转换以分号分隔的查询。 当 FILE 为 - 时,
它读取标准输入。
转换单个查询:
pt-fingerprint --query “从 id = 500 的用户中选择 a、b、c”
转换一个充满查询的文件:
pt指纹/path/to/file.txt
风险
Percona Toolkit 是成熟的,在现实世界中得到验证,并经过良好测试,但所有数据库
工具会给系统和数据库服务器带来风险。 在使用这个工具之前,
请:
· 阅读工具的文档
· 查看工具已知的“BUGS”
· 在非生产服务器上测试该工具
· 备份您的生产服务器并验证备份
商品描述
查询指纹是查询的抽象形式,它使分组成为可能
相似的查询放在一起。 抽象查询删除文字值,规范化
空白等。 例如,考虑以下两个查询:
选择名称,密码来自用户 WHERE id='12823';
选择用户名、密码
其中 id=5;
这两个查询都将指纹识别
从用户那里选择名称、密码,其中 id=?
一旦知道查询的指纹,我们就可以谈论查询,好像它
代表所有相似的查询。
查询指纹适应了大量的特殊情况,这已被证明是必要的
在现实世界。 例如,具有 5 个字面量的 IN 列表实际上相当于一个
有 4 个文字,所以文字列表被折叠成一个。 如果你想
了解有关如何以及为何处理所有这些案例的更多信息,请查看测试
Subversion 存储库中的案例。 如果您发现没有指纹的东西
正确,请提交带有可重现测试用例的错误报告。 这是一个列表
指纹识别期间的转换,这可能并不详尽:
· 将来自 mysqldump 的所有 SELECT 查询组合在一起,即使它们针对不同的
表。 所有 pt-table-checksum 的校验和查询也是如此。
· 将多值 INSERT 语句缩短为单个 值() 名单。
· 剥离评论。
· 将USE 语句中的数据库抽象化,使所有USE 语句组合在一起。
· 替换所有文字,例如带引号的字符串。 为了效率,替换的代码
文字数字在某种程度上是非选择性的,并且可能会将某些东西替换为数字
当他们真的不是。 十六进制文字也被替换。 NULL 被视为
一个字面意思。 嵌入在标识符中的数字也会被替换,因此命名的表
同样将指纹识别为相同的值(例如 users_2009 和 users_2010
指纹相同)。
· 将所有空格折叠成一个空格。
· 小写整个查询。
· 替换里面的所有文字 在() 和 值() 带有单个占位符的列表,
与基数无关。
· 将多个相同的 UNION 查询合并为一个。
配置
此工具接受额外的命令行参数。 参考“概要”和用法
详细信息。
--配置
类型:数组
阅读这个逗号分隔的配置文件列表; 如果指定,这必须是第一个
命令行选项。
- 帮帮我
显示帮助并退出。
--匹配嵌入数字
匹配嵌入在单词中的数字并替换为单个值。 该选项导致
工具在匹配数字时更加小心,以便带有数字的单词,例如
“catch22”匹配并替换为单个“?” 占位符。 否则
默认数字匹配模式将“catch22”替换为“catch?”。
如果数据库或表名包含数字,这会很有帮助。
--match-md5-校验和
匹配 MD5 校验和并替换为单个值。 此选项会导致工具
在匹配数字时更加小心,以便 MD5 校验和像
“fbc5e685a5d3d45aa1d0347fdb7c4d35”匹配并替换为单个“?”
占位符。 否则,默认的数字匹配模式将替换
"fbc5e685a5d3d45aa1d0347fdb7c4d35" as "fbc?".
- 询问
类型:字符串
要转换为指纹的查询。
- 版
显示版本并退出。
环境
环境变量“PTDEBUG”启用对 STDERR 的详细调试输出。 启用
调试并将所有输出捕获到文件中,运行该工具,如:
PTDEBUG=1 pt-fingerprint ... > 文件 2>&1
请注意:调试输出量很大,可能会生成几兆字节的输出。
系统 参赛要件
你需要 Perl、DBI、DBD::mysql 和一些应该安装在任何地方的核心包。
相当新版本的 Perl。
使用 onworks.net 服务在线使用 pt-fingerprintp
