pt-find这个工具,和Linux find命令类似,通过SHOW TABLE STATUS方式,查找特定的表并执行一些SQL语句,对于日常运维工作也是有比较大的帮助。
(1)基本语法
pt-find [OPTIONS] [DATABASES]
(2)常见选项
--host:-h,IP地址
--port:-P,端口
--socket:-S,套接字文件
--user:-u,用户名
--password:-p,密码
--charset:-A,字符集
--database:-D,数据库
--ask-pass:提示手动输入密码
--case-insensitive:大小写敏感
--[no]quote:是否打印反引号
--or:过滤条件之间取或,默认取与
(3)过滤条件
--autoinc:表的auto_increment
--avgrowlen:表的平均行长度
--checksum:表的checksum
--cmin:表的创建时间,以分钟为单位
--ctime:表的创建时间,以天为单位
--collation:表的排序规则
--column-name:表的列名
--column-type:表的字段类型
--comment:表的注释
--createopts:表的创建选项
--datafree:表的剩余大小
--datasize:表的总大小
--rows:表的记录数
--empty:表的记录数是否为空
--engine:表的存储引擎
--indexsize:索引的总大小
--kmin:表上次检查的时间,以分钟为单位
--ktime:表上次检查的时间,以天为单位
--mmin:表上次修改的时间,以分钟为单位
--mtime:表上次修改的时间,以天为单位
--rowformat:表的行格式
--tablesize:表的总大小,包括datasize和indexsize
--function:函数的匹配模式
--trigger:触发器的匹配模式
--view:视图的匹配模式
附
mysql> show table status\G
*************************** 1. row ***************************
Name: sbtest1
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 947263
Avg_row_length: 241
Data_length: 228466688
Max_data_length: 0
Index_length: 275906560
Data_free: 26214400
Auto_increment: 1000001
Create_time: 2021-04-30 14:03:29
Update_time: NULL
Check_time: NULL
Collation: utf8mb4_general_ci
Checksum: NULL
Create_options: max_rows=1000000
Comment:
(4)操作选项
--exec:执行SQL
--print:打印出库名和表名
--printf:打印出库名和表名
(4)DSN选项
h:IP地址
P:端口
S:套接字文件
u:用户名
p:密码
A:字符集
D:数据库
t:表
(1)找出一天前创建的、MyISAM存储引擎表
pt-find --ctime +1 --engine MyISAM --h=10.1.4.9,P=10057,u=test,p=xxx
(2)找出InnoDB存储引擎表、并将其转换为MyISAM存储引擎表
pt-find --engine InnoDB --exec "ALTER TABLE %D.%N ENGINE=MyISAM" --h=10.1.4.9,P=10057,u=test,p=xxx
(3)找出test库中的空表
pt-find --empty test --exec-plus "DROP TABLE %s" --h=10.1.4.9,P=10057,u=test,p=xxx
(4)找出总大小超过5G的表
pt-find --tablesize +5G --h=10.1.4.9,P=10057,u=test,p=xxx
(5)找出并打印所有表的总大小、并进行排序
pt-find --printf "%T\t%D.%N\n" --h=10.1.4.9,P=10057,u=test,p=xxx | sort -rn
通过pt-find这个工具,可以实现表的批量查找和批量操作,还是非常方便的。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。