优化服务器设置
1.配置基础知识
1)查找配置文件路径
$ which mysqld
/usr/sbin/mysqld
$ /usr/sbin/mysqld --verbose --help | grep -A l 'Default options'
Default options are read from the following files in the given order:
/etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf
2)语法、作用域及动态性
配置小写、使用下划线或破折号分割单词
全局域、会话域、只对对象有效的作用域
动态变量:
SET sort_buffer_size = <value>;
SET GLOBAL sort_buffer_size = <value>;
SET @@sort_buffer_size := <value>;
SET @@session.sort_buffer_size := <value>;
SET @@global.sort_buffer_size := <value>;
3)设置变量的副作用
key_buffer_size
给键缓冲区分配制定大小的空间。
table_cache_size
处理缓存中表的数量
thread_cache_size
检查缓存中是否有空间存储线程
query_cache_size
为查询缓存一次性分配变量所定义数量的内存
read_buffer_size
一次性把置顶的大小分配给该缓存
read_rnd_buffer_size
在查询需要的时候会给这个缓冲去分配内存
sort_buffer_size
在查询需要排序的时候给这个缓冲区分配内存
4)开始配置
方式:每次只小幅度的改动一两个设置,并且在每次改动之后都进行基准测试。
5)通用调优原则
调整配置文件:在安装的时候使用适当的初始值,然后基于工作负载进行细节调整。
内存使用调优:
1.mysql能使用多少内存
2.单个连接需要的内存
3.为操作系统保留内存
4.为缓存分配内存
操作系统为myisam的数据听过的缓存
myisam建缓存
innodb缓存池
查询缓存
6)myisam键缓存
只存储索引,没有数据。
key_buffer_size:应占到所有保留内存的0.25到0.5.
show status监视建缓冲区的使用情况和性能。
缓存命中率:
100-((key_reads * 100 )/ key_read_requests)
缓存使用百分比
100-((key_blocks_unused * key_cache_block_size)100 / key_buffer_size)