mysql性能模块uptime_mysql性能优化

导致数据库服务器响应客户端的访问请求慢:

1 硬件配置低:cpu(uptime,top) 内存(free -m) 硬盘I/O(top中的wa)

2 带宽:网络测速软件

3 数据库版本低,修改服务运行时配置参数 :

命令行修改,重启服务失效

#mysql>set [global] 变量名=值;

查看变量

#mysql>show variables like "%关键字%"

修改配置文件,永久生效;

vim /etc/my.conf

[mysqld]

变量名=值

影响处理速度参数有那些?

max_connections:最大并发连接数

曾经有过的最大连接数/max_connections=0.85

曾经有过的最大连接数:#mysql>show global status like "max_used_connections";

显示当前的连接信息:#mysql>show processlist;

connect_timeout:建立连接时,tcp三次握手的超时时间,默认10秒

wait_timeout:连接建立后,等待断开的超时时间,默认8个小时

thread_cache_size:充许保存在缓存中可以重复使用线程数量

table_open_cache=3:为所有线程缓存的打开表的数量

34cd8fb791eede49b6052755321c74cb.png

ba22480a39b1f51e17f8294ac2c43034.png

mysql的功能模块

连接池:    接收到客户端连接时,检查是否有线程 和资源响应本次连接

SQL接口:   把sql命令传递给mysql服务处理

分析器:  检查sql命令语法是否正确

优化器:   对执行的sql命令做优化处理

查询缓存:   查询缓存空间是从机器的物理内存划分出来的,存储曾经查找过的记录。

表记录。

存储引擎 表处理器 (myisam / innodb )

文件系统 硬盘(存储服务器)

管理工具 软件安装后提供的命令

数据库服务器处理客户端查询请求的过程?

当数据库服务器接收到查询请求时,先在本机的查询缓存里查询数据。若查询

缓存里有查找的数据,从查询缓存提取数据,返给客户端,若没有,到表中查

找记录,找到之后,先把查询结果存放到查询缓存里,在把结果返给客户端。

查看数据库服务器与查询相关参数的设置

mysql> show variables like "query_cache%";

query_cache_type = 0|1|2

0 不允许存

1|2 允许存

1 只要查询结果没超过query_cache_limit就可以存

2 程序要在执行查询时,要在查询命令里加 select 加存放本次查询结果的关键字 * from a;

query_cache_wlock_invalidate | OFF

当客户端查询myisam存储引擎的表时,若此时有客户端同时对查询的表做写

操作的话,数据库服务不从查询缓存里提取查询结果返给客户端,而是等对表

的写操作完成后,重新从表里查找记录返给客户端。

查看当前数据库服务器查询缓存的统计信息

mysql> show global status like "qcache%";

Qcache_hits 5 查询结果是在查询缓存里找到的次数

Qcache_inserts 50 查询请求总数

Qcache_lowmem_prunes 查询缓存空间不足的次数

查询日志文件:记录客户端连接后执行的所有sql命令

general-log

general-log-file=目录名/文件名

慢查询日志:

slow-query-log

slow-query-time=3(超过指定秒数的查询才被记录)

slow-query-log-file=目录名/文件名

#mysqldumpslow db20-slow.log

Qcache_not_cached 35 不允许把查询结果存放到查询缓存里的次数

innodb_lock_wait_timeout 50

a885781b08b03310e1ac108f541c8cf1.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值