Mysql 数据库优化4
2012-09-07 13:57
295 查看
mysql数据库配置优化
缓存索引相关参数:
query_cache 缓存结果集,极高效,与sql语句一一对应,也有弊端,
binlog_cache_size 缓存binlog数据,影响所有写入操作的性能,我们服务器上设置的是32768,4G内存
thread_cache 缓存连接线程,影响连接建立效率,对短连接影响较大
back_log 表示暂时停止响应新请求之前可以存储在堆栈中的请求的数目,一般设置为小于512的整数
key_buffer_size 表示索引能使用的缓冲区的大小(用户索引的缓存大小),对于4G的内存来说,一般可设置为256M或384M,对myisam影响
比较大,它只缓存索引,不缓存数据,这是最大的限制
innodb_db_buffer_pool_size 对innoDB有极大影响,缓存索引及数据
innodb_log_buff_size 缓存innoDB写入日志,影响写入效率
innodb_max_dirty_pages_pct 设置innoDB Buffer中脏页占比,默认是90(比较大)
sort_buffer_size 表示查询缓存时可使用的缓冲区大小,对于4G的内存来说,设置为6-8M
read_buffer_size 表示读查询操作可使用的缓冲区大小,对于4G的内存来说,,设置为4M左右
join_buffer_size 表示连接查询操作时可以使用的缓冲区大小,对于4G的内存来说,设置为8M
query_cache_size 表示查询缓冲区的大小,对于4G的内存来说,建议设置为64M,当然了这个据情况而定
table_cache 缓存打开的表信息,物理内存越大,该值设置就越大,默认为2402,可设置为512-1024之间
max_heap_table_size 独立一个内存表所允许使用的做大的缓存,防止一个表的缓存太大,将所有缓存都耗尽
连接相关参数:
max_connections 表示最多的连接数,如果经常提示too many connections就应该增大该值,最大值是3000
max_connect_errors 限制用户登录时最大登录失败次数
back_log影响突发连接暴增场景
skip-name-resolve 取消对客户端的DNS反解,影响连接和授权(建议关闭)
internactive_timeout 和wait_timeout 过期时间,对于4G的内存来说,可设置为5-10之间
磁盘的IO方式
innodb_flush_method innodb文件打开方式,linux下文件系统影响大
innodb_flush_log_at_trx_commit 影响innodb日志事务刷新机制(0.1.2)
innodb_file_per_table 影响表存储方式,文件过大会影响性能
sync_binlog 影响binlog日志刷新到磁盘的机制
指导原则
query_cache 不超过256M,除非基本静态,INNODB无效(因为有很多限制)
binlog_cache_size 2M-4M <32M
table_cache 1024(已经足够)
thread_cache 1024 不要超过最大连接数,<max_connections,超过了就没有意义了
key_buffer_size 如果没有myISAM 16MB,否则尽量大
innodb_db_buffer_pool_size 仅作用于innoDB,所有文件大小之内尽可能大
innodb_log_buff_size 4-8MB,<32M
max_connections 1000-2000<10000
max_connect_errors >1000,
缓存索引相关参数:
query_cache 缓存结果集,极高效,与sql语句一一对应,也有弊端,
binlog_cache_size 缓存binlog数据,影响所有写入操作的性能,我们服务器上设置的是32768,4G内存
thread_cache 缓存连接线程,影响连接建立效率,对短连接影响较大
back_log 表示暂时停止响应新请求之前可以存储在堆栈中的请求的数目,一般设置为小于512的整数
key_buffer_size 表示索引能使用的缓冲区的大小(用户索引的缓存大小),对于4G的内存来说,一般可设置为256M或384M,对myisam影响
比较大,它只缓存索引,不缓存数据,这是最大的限制
innodb_db_buffer_pool_size 对innoDB有极大影响,缓存索引及数据
innodb_log_buff_size 缓存innoDB写入日志,影响写入效率
innodb_max_dirty_pages_pct 设置innoDB Buffer中脏页占比,默认是90(比较大)
sort_buffer_size 表示查询缓存时可使用的缓冲区大小,对于4G的内存来说,设置为6-8M
read_buffer_size 表示读查询操作可使用的缓冲区大小,对于4G的内存来说,,设置为4M左右
join_buffer_size 表示连接查询操作时可以使用的缓冲区大小,对于4G的内存来说,设置为8M
query_cache_size 表示查询缓冲区的大小,对于4G的内存来说,建议设置为64M,当然了这个据情况而定
table_cache 缓存打开的表信息,物理内存越大,该值设置就越大,默认为2402,可设置为512-1024之间
max_heap_table_size 独立一个内存表所允许使用的做大的缓存,防止一个表的缓存太大,将所有缓存都耗尽
连接相关参数:
max_connections 表示最多的连接数,如果经常提示too many connections就应该增大该值,最大值是3000
max_connect_errors 限制用户登录时最大登录失败次数
back_log影响突发连接暴增场景
skip-name-resolve 取消对客户端的DNS反解,影响连接和授权(建议关闭)
internactive_timeout 和wait_timeout 过期时间,对于4G的内存来说,可设置为5-10之间
磁盘的IO方式
innodb_flush_method innodb文件打开方式,linux下文件系统影响大
innodb_flush_log_at_trx_commit 影响innodb日志事务刷新机制(0.1.2)
innodb_file_per_table 影响表存储方式,文件过大会影响性能
sync_binlog 影响binlog日志刷新到磁盘的机制
指导原则
query_cache 不超过256M,除非基本静态,INNODB无效(因为有很多限制)
binlog_cache_size 2M-4M <32M
table_cache 1024(已经足够)
thread_cache 1024 不要超过最大连接数,<max_connections,超过了就没有意义了
key_buffer_size 如果没有myISAM 16MB,否则尽量大
innodb_db_buffer_pool_size 仅作用于innoDB,所有文件大小之内尽可能大
innodb_log_buff_size 4-8MB,<32M
max_connections 1000-2000<10000
max_connect_errors >1000,
相关文章推荐
- Mysql修改数据库字段优化
- Mysql优化3-数据库Sql优化
- 一步一步优化你的mysql------如何优化数据库中的查询语句(一)
- 百万级数据库记录下的Mysql快速分页优化实例
- mysql sql 百万级数据库优化方案
- (四)2.2 mysql 数据库对象优化之--优化索引
- mysql sql 百万级数据库优化方案
- 更好的设计数据库还有就是数据库语句优化~~(主要是mysql)
- 数据库技巧——MySQL十大优化技巧
- 数据库性能优化(MySQL)
- SQL truncate 、delete与drop区别及 MSSQL、MySQL 数据库删除大批量千万级百万级数据的优化
- MySQL 数据库性能优化之缓存参数优化
- MySQL 数据库删除大批量数据的优化
- 巧用MySQL之Explain进行数据库优化
- innoDB锁问题-《深入浅出Mysql--数据库开发、优化与管理维护》
- mysql_数据库设计类型选择及优化
- Mysql相关命令,优化数据库的时候可以提供帮助
- Mysql 数据库 优化利器 PROCEDURE ANALYSE
- 数据库优化 SQLServer mysql Oracle
- MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化