10477777 发表于 2018-10-9 10:27:53

MySQL优化之二:My SQL Server性能优化

  1 安装优化
  一般说来,系统功能越多越复杂,性能就会越差。因此在编译安装MySQL时,仅安装需要的功能模块。如存储引擎、需要的字符集等,让系统尽可能的简单。
  2 日志设置优化
  由于日志记录直接带来的性能损耗就是数据库最为昂贵的I/O资源,因此在默认情况下MySQL仅开启了错误日志,关闭了其它所有日志。但是在生产环境中,至少需要打开二进制日志和慢查询日志,前者是增量备份的基础,而后者有利于进一步对数据库进行优化。通常情况下,生产环境中很少会打开一般查询日志,如果打开,数据库会记录每一条操作记录对系统I/O性能影响很大。
  查看二进制日志设置,默认关闭:
  mysql> show variables like '%log%bin%';
  +---------------------------------+-------+
  | Variable_name                   | Value |
  +---------------------------------+-------+
  | log_bin                         | OFF   |
  | log_bin_basename                |       |
  | log_bin_index                   |       |
  | log_bin_trust_function_creators | OFF   |
  | log_bin_use_v1_row_events       | OFF   |
  | sql_log_bin                     | ON    |
  +---------------------------------+-------+
  6 rows in set (0.00 sec)
  查看慢查询日志设置,默认关闭:
  mysql> show variables like "slow%";
  +---------------------+-----------------------------+
  | Variable_name       | Value                     |
  +---------------------+-----------------------------+
  | slow_launch_time    | 2                           |
  | slow_query_log      | OFF                         |
  | slow_query_log_file | /data/mysql/slave2-slow.log |
  +---------------------+-----------------------------+
  3 内存优化
  key_buffer_size:MyISAM引擎索引缓存的大小,4G内存建议设为256M,最大不超过4G
  read_buffer_size:读查询(顺序读)使用的缓冲区大小,默认为128KB,此值为每个连接独享因此不能太大,在生产环境中,应进行多次测试,找到最佳值(为4KB的倍数)
  read_rnd_buffer_size:读查询(随机读)使用的缓冲区大小,默认为256KB,同样是每个连接独享,一般来讲,可以适当调大
  max_connections:MySQL允许的最大连接数,默认为151,如果主机性能和内存允许的话,500-800较为合适
  thread_cache_size:Thread_cache池中可以缓存的连接线程最大数量,建议100以内

页: [1]
查看完整版本: MySQL优化之二:My SQL Server性能优化