MYSQL优化总结和部分属性值

常见优化:


----------------感觉不常用---------------

binlog_do_db=name 对哪些库记录日志

binlog_ignore_db=name 对哪些库不记录日志


---------读写分离--------------

配置一个代理一个主从做读写分离,写主读从。


--------常用属性---------

max_connections 允许的最大并发连接数。

connect_timeout 等待建立连接的超时秒数,默认10s,只在登录时有效。

wait_timeout 等待关闭连接的不活动超时秒数,默认8小时。

已使用连接数max_used_connections/最大并发连接数 <=85%为佳。


------缓存参数-----------

key_buffer_size MyISAM引擎用,拜拜。

sort_buffer_size 为每个要排序的线程分配此大小的缓存空间(针对ODER和GROUP速度)。

read_buffer_size read_rnd_buffer_size影响查询/排序查询响应速度。

thread_cache_size可重用线程数。


-----文件系统层优化------

挂载时候的三个选项:noatime, nodiratime, nobarrier几个选项(nobarrier是xfs文件系统特有的);

------其他参数------

调整innodb_buffer_pool_size大小,如果是单实例且绝大多数是InnoDB引擎表的话,可考虑设置为物理内存的50% ~ 70%左右;

根据实际需要设置innodb_flush_log_at_trx_commit、sync_binlog的值。如果要求数据不能丢失,那么两个都设为1。如果允许丢失一点数据,则可分别设为2和10。而如果完全不用care数据是否丢失的话(例如在slave上,反正大不了重做一次),则可都设为0。这三种设置值导致数据库的性能受到影响程度分别是:高、中、低,也就是第一个会另数据库最慢,最后一个则相反。

设置innodb_file_per_table = 1,使用独立表空间

设置innodb_data_file_path = ibdata1:1G:autoextend 针对高并发

设置innodb_log_file_size=256M,设置innodb_log_files_in_group=2。

根据业务实际需要,适当调整max_connection(最大连接数)、max_connection_error(最大错误数,建议设置为10万以上,而open_files_limit、innodb_open_files、table_open_cache、table_definition_cache这几个参数则可设为约10倍于max_connection的大小。

常见的误区是把tmp_table_size和max_heap_table_size设置的比较大,曾经见过设置为1G的,这2个选项是每个连接会话都会分配的,因此不要设置过大,否则容易导致OOM发生;其他的一些连接会话级选项例如:sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_size等,也需要注意不能设置过大。


有些内容摘自ZENGKEFU的博客园。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值