zoukankan      html  css  js  c++  java
  • pt-find使用

    查找MySQL的表,并且做一些操作,基本语法就如下:
    pt-find [OPTIONS] [DATABASES]
    (1)查找一天前建立的MyISAM 引擎的表
    [root@mxqmongodb2 bin]# ./pt-find --ctime +1 --engine MyISAM --host=172.16.16.35 --port=3306 --user=root --password=123456
    `mysql`.`columns_priv`
    `mysql`.`db`
    `mysql`.`event`
    `mysql`.`func`
    `mysql`.`ndb_binlog_index`
    `mysql`.`proc`
    `mysql`.`procs_priv`
    `mysql`.`proxies_priv`
    `mysql`.`tables_priv`
    `mysql`.`user`
    (2)将一天前创建的InnoDB 表都转化为MyISAM引擎的表
    pt-find --engine InnoDB --exec "ALTER TABLE %D.%N ENGINE=MyISAM" --host=172.16.16.35 --port=3306 --user=root --password=123456 --database=test
    (3)查找某些符合某个规则的表,并且执行删除操作
    pt-find --connection-id 'D_d+_(d+)$' --server-id 'D_(d+)_d+$' --exec-plus "DROP TABLE %s" --host=172.16.16.35 --port=3306 --user=root --password=123456 --database=test
    (4)找到maxiangqian,open_api的空表
    [root@mxqmongodb2 bin]# ./pt-find --empty open_api maxiangqian --host=172.16.16.35 --port=3306 --user=root --password=123456
    `open_api`.`ma`
    `maxiangqian`.`test02`
    找到open_api 数据库的空表执行删除操作:
    [root@mxqmongodb2 bin]# ./pt-find --empty open_api --host=172.16.16.35 --port=3306 --user=root --password=123456 --exec-plus "DROP TABLE %s"
    [root@mxqmongodb2 bin]# ./pt-find --empty open_api --host=172.16.16.35 --port=3306 --user=root --password=123456
    再次查询结果可以看到已经删除了。
    (5)查找某些大表,由于我是测试环境,就查找5M以上的表吧:
    [root@mxqmongodb2 bin]# ./pt-find --tablesize +5M --host=172.16.16.35 --port=3306 --user=root --password=123456
    `sbtest`.`sbtest`
    `tpcc`.`customer`
    `tpcc`.`history`
    `tpcc`.`item`
    `tpcc`.`order_line`
    `tpcc`.`orders`
    `tpcc`.`stock`
    这个功能个人感觉还是蛮实用的,最起码可以很快定位到数据的大表,当然通过information_schema也是可以快速查询的到表的使用大小的。
    (6)查找所有的表并且打印出表大小(数据加索引),并且自动排序
    [root@mxqmongodb2 bin]# ./pt-find tpcc --host=172.16.16.35 --port=3306 --user=root --password=123456 --printf "%T	%D.%N
    " | sort -rn
    407797760 `tpcc`.`stock`
    338673664 `tpcc`.`order_line`
    186384384 `tpcc`.`customer`
    24690688 `tpcc`.`history`
    19415040 `tpcc`.`orders`
    9977856 `tpcc`.`item`
    4341760 `tpcc`.`new_orders`
    16384 `tpcc`.`warehouse`
    16384 `tpcc`.`district`
    也可以将这些数据插入到表中:
    要先创建表:
    mysql> create table tblsize(db varchar(30), tbl varchar(30), size int);
    Query OK, 0 rows affected (0.48 sec)
    执行插入操作:
    [root@mxqmongodb2 bin]# ./pt-find tpcc --host=172.16.16.35 --port=3306 --user=root --password=123456 --noquote --exec "INSERT INTO sysdata.tblsize(db, tbl, size) VALUES('%D', '%N', %T)"
    然后查看内容:
    mysql> select * from tblsize;
    +------+------------+-----------+
    | db | tbl | size |
    +------+------------+-----------+
    | tpcc | customer | 186384384 |
    | tpcc | district | 16384 |
    | tpcc | history | 24690688 |
    | tpcc | item | 9977856 |
    | tpcc | new_orders | 4341760 |
    | tpcc | order_line | 338673664 |
    | tpcc | orders | 19415040 |
    | tpcc | stock | 407797760 |
    | tpcc | warehouse | 16384 |
    +------+------------+-----------+
    9 rows in set (0.00 sec)
  • 相关阅读:
    查看CentOS版本方法
    Android中string.xml文件中设置部分字体颜色大小
    linux重启oracle 各种方法
    Duilib初级控件扩展一例: 具有鼠标滚动消息的OptionUI
    VirtualBox 安装XP虚拟机需要注意的问题
    如何让VS2012编写的程序在XP下运行
    VC 系统托盘编程,含有气泡提示
    获取文件或是文件夹的大小和占用空间
    VC++实现获取文件占用空间大小的两种方法(非文件大小)
    VC++ 获取文件属性创建时间、修改时间和访问时间
  • 原文地址:https://www.cnblogs.com/shengdimaya/p/7064370.html
Copyright © 2011-2022 走看看