mysql性能问题
性能优化的目的是什么呢?(合理利用可利用的资源)
性能优化的方向:
硬件方面:CPU、内存、IO、网络、硬盘、显卡
软件方面:mysql这个软件内部优化,比如sql、算法,一些配置
项目方面:需求设计、架构优化、代码优化。
优化指标:
执行时间:一段代码从开始运行到运行结束所使用的时间
CPU时间:(算法)函数或者线程占用CPU时间
内存分配:程序在运行时占用的内存时间
磁盘吞吐量:描述IO的使用情况
网络吞吐量:描述网络的使用情况
响应时间:系统对某用户行为或者动作做出响应的时间,时间越短性能越好
有关性能查询的命令:
查询进程信息,可搭配管道符号使用,ps -aux | grep 进程名
ps -aux
top命令
top |grep 'id'
vmstat命令
[root@VM_0_17_centos ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 0 76964 6508 254316 0 0 82 41 0 0 1 1 98 0 0
r列表式可运行进程的数量
b列表式阻塞进程的数量
内存性能优4个报告虚拟内存如何使用的字段
swpd已经使用的交换空间的数量
free 自由RAM数量
buff 缓存使用的RAM的数量
cache 文件系统缓存使用的RAM数量
swap交换字段进行详细说明
si 表示从磁盘分页到内存的数量
so 表示从内存分页到磁盘的数量。
其余相关的系统命令:sar、iostat、netstat、free等
show variables;
--查看当前session级别的隔离方式
show variables like '%isolation%';
-- 查看isolation帮助 help isolation
-- 局部修改
set session transaction isolation level READ COMMITTED;
show session variables like'%isolation%';
-- 全局修改 show global variables like '%isolation%';
set global transaction isolation level READ COMMITTED;