首页 > 代码库 > mysql配置优化
mysql配置优化
max_connections MySQL所允许的的同时会话数 Error: Too many connections
max_connect_errors 最大错误(连接类)允许数,会引发FLUSH HOSTS重启服务
key_buffer_size 关键词缓冲区大小,缓存MyISAM索引块,决定索引处理速度,读取索引处理速度
max_allowed_packet 设置最大包,限制server结束数据块大小,避免超长SQL执行,Error: 信息包过大 关闭连接。 如果客户端遇到丢失与MySQL连接的报错,检查这个选项。
thread_cache_size 服务器线程缓存
thread_concurrency 默认为CPU核数X2,设置错误的话影响MySQL利用多核处理器性能
sort_buffer_size 每个连接需要使用buffer时分配的内存大小,不是越大越好。例:1000个连接,一个1MB,会占用1GB内存,200WX1MB=20GB
join_buffer_size join表使用的缓存大小,一般默认,不重设
query_cache_size 查询缓存大小,再查询时返回缓存,缓存期间表必须没有被更改,否则缓存失效,多写入操作的话设置大了会影响写入效率
read_buffer_size MyISAM引擎下全表扫描的缓冲大小。如果无法添加索引时还要全表扫描,增大这个值进行优化
read_rnd_buffer_size 从排序好的数据中读取行时,行数据从缓冲区读取的大小,会提升order by性能 注意:MySQL会为每个客户端申请这个缓冲区,并发过大时,设置过大影响内存开销
myisam_sort_buffer_size MyISAM表发生变化时,重新排序所需的缓存
innodb_buffer_pool_size InnoDB 使用缓存保存索引,保存原始数据的缓存大小,可以有效减少读取数据所需的磁盘IO
innodb_log_file_size 数据日志文件大小,大的值可以提高性能,但增加了恢复故障数据库的时间(恢复故障数据库时需要读取数据日志文件,当日志过大会导致时间过长)
innodb_log_buffer_size日志文件缓存,增大该文件可以提高性能,但增大了忽然宕机后损失数据的风险(日志文件在缓存中,还没来得及存进硬盘就断电了)
innodb_flush_log_at_trx_commit 执行事务的时候,会往InnoDB存储引擎的日志缓存插入事务日志,写数据前先写日志(预写日志方式)设置为0,实时写入;当设置为1时,缓存实时写入磁盘;2时,缓存实时写入文件,每秒文件实时写入磁盘
innodb_lock_wait_timeout 被回滚前(当一个事务被撤销时),一个InnoDB事务,应该等待一个锁被批准多久,当InnoDB无法检测死锁时,这个值就有用了
总结:buffur_size大了,可以提高性能,但是占用相应的内存。
mysql配置优化