1 查看系统中有关mysql的线程,获得每个线程的io情况
iotop -u mysql
2 登录mysql数据库查看使用的线程
performance_schema.threads 表中把系统中的线程和数据库中的线程进行了关联
安装
- 1 添加yum源
- curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
- 2 yum 安装
- yum -y install sysbench-1.0.15-1.el7.centos.x86_64
- 3 查看版本
- sysbench --version
查看帮助命令
sysbench --test=fileio help
使用参考:
sysbench测试磁盘IO_StevenBeijing的博客-CSDN博客
1 在information_schema.STATISTICS中记录了相关的信息
可以通过STATISTICS表查看某张表的信息
select * from STATISTICS where table_name='salaries'\G
2 可以通过 show index from table_name的方式查看索引
3 表的信息如table_schema, table_name, table_rows等,在information_schema.TABLES中
4 复合索引
将TABLES 和 STATISTICS 表中的table_schema和table_name相关联,通过Cardinality和table_rows 计算,即可得到对应索引名的选择性
5 索引使用情况
select * from x$schema_index_statistics limit 1\G
索引是要排序的,建立索引越多,排序以及维护成本会很大,插入数据的速度会变慢,所以索引建立的多,不是仅仅是浪费空间,还会降低性能,增加磁盘IO
mysql-utilities是mysql的一个工具集合,它是基于----- python2 --- 实现的,从官网查看到最新版本为mysql-utilities-1.6.5.tar.gz
- # 安装
- wget https://cdn.mysql.com/archives/mysql-utilities/mysql-utilities-1.6.5.tar.gz
- tar xvf mysql-utilities-1.6.5.tar.gz
- cd mysql-utilities-1.6.5
- python setup.py build
- python setup.py install
- mysqldiff --version
- # mysqlfrm 可以抽取frm文件里面的表结构
- mysqlfrm 有两种操作模式。默认的模式是再生个实例,使用--basedir选项或指定--server选项来连接到已经安装的实例。这种过程不会改变原始的.frm文件。
- 该模式也需要指定--port选项来给再生的实例使用,该端口不能与现有的实例冲突。在读取.frm文件后,再生的实例将被关闭,所有的临时文件将被删除的。
- 另一个模式是诊断模式,--diagnostic 选项。byte-by-byte读取.frm文件 尽可能多的恢复信息。该模式有更多的局限性,不能校验字符集。
- 当使用默认模式无法读取文件或者该服务器上没有安装MySQL实例就使用诊断模式。
mysqlfrm --diagnostic base_waterlevel.frm