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存储引擎有效) 










你可能感兴趣的:(mysql,调优)