mysql优化-优化目的和方向
2020-03-18 09:37:41 来源:admin 点击:746
优化数据库的目的:
为了速度
为了稳定
为了用户体验
优化的内容:内存、I/O、CPU、网络带宽、Mysql进程状态、Mysql服务器周期变化。
优化的步骤
数据表设计=》SQL语句优化=》数据参数配置=》硬件资源优化
如何发现问题
系统监控
ps -aux 查看所有进程 终止进程:kill -9 pid
Ps -ef 查看进程环境变量信息
Top 分析CPU、内存、执行时间 ctrl+z 退出命令
Df -h 磁盘使用情况
Vmstat linux性能指标 进程、内存、交互区(swap-磁盘到内存()、内存到磁盘())、I/O、CPU
Mysql命令行: show status
Thread_creates queries
show PROCESSLIST
Mytop: 监控工具 (编译安装、yum)
Sysstat: 检测系统性能(吞吐量)
Ab: 压力测试工具
Awk: 分析工具
Nagios: 监控主机、服务、网络
1、监控工具的实战
8.1、ab
Ab -n(总共执行的次数) -c(并发数)
2、awk(配合shell脚本)
2.1、mysql配置(mysql>=5.6)
[client]
Host=localhost
User=root
Password=123456
Cd /usr/local/mysql/bin
Mysqladmin --defaults-extra-file=/usr/local/mysql/my.cnf ext
Mysqladmin --defaults-extra-file=/usr/local/mysql/my.cnf processlist
2.2 awk的使用
awk '/api/{printf"%s\n",$0}' test.txt
$0 所有列 $1第一列 $N 第N列
获取单个数据项
mysqladmin --defaults-extra-file=/usr/local/mysql/my.cnf ext|awk '/Threads_connected/{printf"%d\n",$4}'
获取多个数据项
mysqladmin --defaults-extra-file=/usr/local/mysql/my.cnf ext|awk '/Threads_connected/{a=$4}/Queries/{b=$4}END{printf("%d %d\n",a,b)}'