mysql配置优化

Posted 君子生非异也

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql配置优化相关的知识,希望对你有一定的参考价值。

1、innodb_flush_log_at_trx_commit :事务日志提交策略即提交事务的时候将 redo 日志写入磁盘中的时机。

  • 等于0:等于0表示每次提交事务时将数据提交到mysql redo log buffer 中即表示操作成功,数据的落盘依靠 InnoDB 的主线程每秒执行一次刷新到磁盘。显然该模式在mysql宕机后,会丢失缓存中的数据。
  • 默认值1:等于1表示每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电池供电缓存(Battery backed up cache)时。显然该模式最为安全,但是效率较低。
  • 等于2:等于2表示先写入系统缓存(OS_cache)。日志仍然会每秒flush到硬盘,所以你一般不会丢失超过1-2秒的更新。该模式只有在操作系统宕机后才会都是数据。

2、sync_binlog:该参数控制着二进制日志写入磁盘的过程。

  • 0:默认值。事务提交后,将二进制日志从缓冲写入系统缓存(OS_cache),但是不进行刷新操作(fsync()),显然该模式若操作系统宕机则会丢失部分二进制日志。

  • 1:事务提交后,将二进制文件写入磁盘并立即执行刷新操作,相当于是同步写入磁盘。显然该模式对于数据的安全性更有保障,但是效率最低。
  • N:每写N次操作系统缓冲就执行一次刷新操作。

将这个参数设为0或大于1以上的数值会提高数据库的性能,但同时会伴随数据丢失的风险。二进制日志文件涉及到数据的恢复,以及想在主从之间获得最大的一致性,那么应该将该参数设置为1,但同时也会造成一定的性能损耗。

3、max_connections:是指MySql的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySql会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。可以过\'conn%\'通配符查看当前状态的连接数量,以定夺该值的大小。MySQL服务器允许的最大连接数16384;查看mysql当前最大连接数:show variables like \'max_connections\';

4、innodb_buffer_pool_size:这个参数主要缓存innodb表的索引,数据,插入数据时的缓冲。为Innodb加速优化首要参数。默认128M,建议设为内存的70%-80%。

innodb_buffer_pool_size中存储的内容:

  • 数据缓存:InnoDB数据页面
  • 索引缓存:索引数据
  • 缓冲数据:脏页(在内存中修改尚未刷新(写入)到磁盘的数据)
  • 内部结构:如自适应哈希索引,行锁等。

 

以上是关于mysql配置优化的主要内容,如果未能解决你的问题,请参考以下文章

mysql 性能优化参数配置

MySQL优化MySQL 高并发配置优化基础知识

MySQL优化MySQL 高并发配置优化基础知识

mysql优化

mysql配置优化

mysql配置以及性能优化