您的位置:首页 > 数据库 > MySQL

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,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: