Mysql 数据库优化4---索引缓存

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 不要超过最大连接数,

 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)