mysql调优
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql调优相关的知识,希望对你有一定的参考价值。
硬调优
软调优(服务运行时的运行参数)
1 设置数据库服务器的并发连接数
mysql> set GLOBAL max_connections=200;
公式是 max_used_connections/max_connections=0.85*100%=85%
2 客户端连接超时时间的设置
连接超时时间 connect_timeout = 10 一般不改
连接后 等待发送指令的超时时间 wait_timeout = 28800 一般不改
3 缓存空间的设置
索引缓存空间 set key_buffer_size=16777216;
查询缓存空间 show variables like ‘key_buffer_size‘;(以字节为单位 )
查询索引总数和从硬盘读取索引数量:show global status like ‘key_read%‘;
查询后列表 key_read_requests 索引读取请求总数
key_reads 内存中没有找到直接从硬盘读取索引数量
set global thread_cache_size=10; 可以重复使用的保存在缓存中线程的数量
table_cache = 64 所有线程打开表的数量
opened_tables数量过大 table_cache值可能太小
opened_tables/table_cache * 100%=100% 理想值(<=95%)
查看所有线程打开表的数量mysql> show variables like "table_cache";
四种类型日志:
binlog日志
慢查询日志 记录超出指定时间显示查询结果的sql语句
查询日志 记录客户端连接自己后执行的所有的sql语句
错误日志 记录数据库服务在启动和运行过程中产生的错误,默认是开启的
cat /var/lib/mysql/主机名.err
vim /etc/my.cnf
[mysqld_safe]
log-error=/var/log/mysqld.log
启用mysql服务器的慢查询日志 vim /etc/my.cnf
[mysqld]
slow-query-log
或指定名slow-query-log-file=liang
long-query-time=5 #超时时间
log-queries-not-using-indexes 没有使用索引做查询的sql语句
:wq
查询缓存的配置
show variables like "query_cache%";
查询后:query_cache_limit=超过这个数值不保存
query_cache_min_res_unit=
query_cache_size 默认存储大小
query_cache_type=off没有启用查询结果存放在查询缓存空间 on允许
query_cache_wlock_invalidate =off或on 写锁是否无效(针对mysam存储引擎有效)
本文出自 “linux云计算” 博客,请务必保留此出处http://liangzai818.blog.51cto.com/10003446/1741777
以上是关于mysql调优的主要内容,如果未能解决你的问题,请参考以下文章