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调优的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat+MySQL常见调优参数

mysql-5.5.32安装和最小化调优

MySQL 性能调优之索引

Mysql千万级数据性能调优配置

mysql中order by工作原理与调优

MySQL数据性能优化-修改方法与步骤