mysql数据库性能优化 - 参数优化

时间:2015-01-04 18:55:30   收藏:0   阅读:318

Mysql Server优化                                                                                                                                

1、查看mysql server参数

 

2、影响mysql性能的重要参数

1)链接数

      比较理想的设置:Max_used_connections / max_connections * 100% = 85%

 

2)索引未命中缓存的概率

     key_cache_miss_rate = key_reads /  key_read_requests * 100%(在0.1%以下都很好,如果在0.01%以下的话,而key_buffer_size分配过多,可以适当减少)

     理解:key_read_requests是从cache中读索引的请求,而key_reads是从物理硬盘上读索引的次数。每次需要使用索引的时候就会先向cache中请求,cache中没有该索引的时候就再从硬盘上读。

 

3)表描述符缓存

比较合适的值:

  open_tables / opened_tables * 100% >= 85%

  open_tables / table_open_cache * 100% <= 95%

 

4)表扫描率

     表扫描率 = Handler_read_rnd_next / com_select   --超过400说明有太多的表扫描,很有可能索引没有建好,增加read_buffer_size值会有一些好处,但最好不要超过8M。

 

5)innodb_flush_log_at_trx_commit   --控制缓冲区中数据写入到日志文件以及日志文件数据刷新到磁盘的操作时机

0:log thread每隔1s会将log buffer中的数据写入到文件,同时还会通知文件系统进行文件同步的flush操作,保证数据确实已经写入到磁盘上面的物理文件。(性能最好,安全性最差)

1:每次事务结束时都会触发log thread将日志缓存中的数据写入到文件并通知文件系统同步文件。(最安全,性能稍差)

2:log thread会在每次事务结束的时候讲数据写入到事务日志,但是这里写入仅仅是调用文件系统的文件写入操作,文件系统什么时候会将缓存中的数据同步到物理文件,log thread就完全不知道。(对数据一致性和完整性要求不高时使用)

一般原则:

 

6)innodb_log_file_size --一个日志组中每个日志文件的大小,默认5M

    show variables like ‘innodb_log_file_size ‘;

    在高写入负载,尤其是大数据的情况下很重要。这个值越大则性能相对越高,但是带来的副作用是,当系统遭难是恢复时间会加长(扫描恢复的时间越长)。一般用64M-512M,具体取决于服务器的空间。

 

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!