由8个功能模块组成:
uptime
free -m
top -->0.0 wa
查看服务运行时的参数配置
mysql> show variables;
mysql> show variables like "%innodb%";
查看并发连接数量
show variables like "%conn%";
mysql> show variables like "max_connections%";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
修改变量的值
命令行修改
set 【global】变量名=值;
set global max_connections = 500;
mysql> show variables like "max_connections%";
永久修改:
vim /etc/my.cnf
变量名=值
怎样设置才算合理:
有过的最大连接数/并发连接数约等于0.85的时候才最合理
Max_used_connections/Max_connections=0.85
500/x=0.85*100%=85%
查看有过的最大连接数
show global status like "%conn%";
show global status like "Max_used_connections";
set global max_connections=数字;
flush status //刷新连接的值(清零)
mysql> show variables like "max_connections%";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 152 |
+-----------------+-------+
连接超时时间
show variables like "%timeout%"; //timeout字样的全部列出来
connect_timeout | 10
//客户端与服务器建立连接时tcp三次握手的超时时间10s
wait_timeout | 28800
//客户端与服务器建立连接后,等待执行sql命令的超时时间28800s
可以恢复使用的线程数量
线程:thread
show variables like "%thread%";
thread_cache_size | 9 //可以重复使用的线程的数量
所有线程同时打开表的数量
mysql> show variables like "%table%";
table_open_cache | 2000 //默认2000张
与查询相关参数的配置
key_buffer-size 索引缓存的大小(默认8M)
index primary key foreign key
show variables like "key_buffer_size%";
sort_buffer_size:为每个要排序的线程分配此大小的缓存空间
read_buffer_size:为顺序读取表记录保留的缓存大小
name---> index
select * from t1 where name="jim"; key_buffer_size
select * from t1 order by 字段名; sort_buffer_size
select * from t1; read_buffer_size
select * from t1 group by 字段名; read_rnd_buffer_size
与查询缓存相关参数的配置
mysql> show variables like "query_cache%";
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| query_cache_limit | 1048576 | //查询缓存超过这个值默认(1M)就不允许放到缓存里 1048576除以1024
| query_cache_min_res_unit | 4096 | //查询缓存最小存储单元4k 4096除以1024
| query_cache_size | 1048576 | //查询缓存的大小默认(1M)
| query_cache_type | OFF | //查询缓存类型 默认关(off )
| query_cache_wlock_invalidate | OFF | //查询缓存写锁无效是关闭的即写锁是有效的
+------------------------------+---------+
当对myisam存储引擎的表执行查询时,若检查到有对表做写的sql操作,不从查询缓存里查询数据缓存返回
给客户端,而是等写操作完成后,重新从表里查找数据返回给客户端
查看当前的查询缓存统计状态
mysql> show global status like "%qcache%";
| Qcache_hits | 0 | //在查询缓存查找到数据的次数
| Qcache_inserts | 0 | //记录在查询缓存里查找数据的次数
| Qcache_lowmem_prunes | 0 | //清理查询缓存空间刷新的次数,清理一次,它的值加一次
mysql数据库服务日志类型:
错误日志:默认开启,记录服务在启动和运行过程中产生的错误信息
log-error=/var/log/mysqld.log
binlog日志又叫二进制日志
慢查询日志:记录超过指定时间显示查询结果的sql命令
查询日志:记录所有sql命令
vim /etc/my.cnf
[mysqld]
general-log
# systemctl restart mysqld
cat /var/lib/mysql/主机名.log
cat /var/lib/mysql/db55.log
# vim /etc/my.cnf
[mysqld]
slow-query-log
slow-query-log-file=db55
long-query-time=2 //指定超时时间
log-queries-not-using-indexes //记录没有使用索引做查询的命令
# systemctl restart mysqld
查看日志文件内容
cat /var/lib/mysql/主机名-slow.log
mysql -uroot -p123456
mysql> select sleep(4); //休眠4s再查询,日志里会有记录,不超过2s不会记录
tailf /var/lib/mysql/db55-slow.log
统计慢查询日志文件记录信息
# mysqldumplow /var/lib/mysql/db55-slow.log > /tmp/sql.txt
5、网络架构有问题(有数据传输瓶颈)