mysql通用配置表设计_mysql-通用优化配置详解

mysql-通用优化配置详解

此处只是将通用优化配置项进行解释说明,再具体的优化需要根据自己业务需求进行相应配置

transaction_isolation = READ-COMMITTED

解读:事务隔离级别:Oracle、SQL Server等商业数据库默认级别为READ-COMMITTED,MySQL默认为REPEATABLE-READ,它利用自身独有的Gap Lock解决了"幻读",但也因次相比于READ-COMMITTED级别的Record Lock,REPEATABLE-READ的事务并发插入性能受到很大的限制

设置:隔离级别的选择取决实际的业务需求(安全和性能的权衡)。如果不是金融、电信等事务级别要求很高的业务,建议设置成:transaction_isolation = READ-COMMITTED

innodb_buffer_pool_size = xx[M|G]

解读:InNoDB缓冲池大小,它决定mysql可以在内存中缓存多少数据和索引,而不是每次都从磁盘上读取

设置:如果是专用mysql服务器,一般设置为操作系统内存的75%,但至少保留2G内存用于操作系统维护和MySQL异常事务处理

innodb_buffer_pool_instances = xx

解读:InnoDB缓冲池实例个数,InnoDB缓冲池是通过一整个链表的方式来管理页面(段、簇、页)的,由于互斥锁的存在(保护链表中的页面),高并发事务下,页面的读取和写入就需要锁的竞争和等待。通过设置innodb_buffer_pool_instances,将一整个链表划分为多个,每个缓冲池实例管理自己的页面和互斥,从而提高效率

设置:如果缓冲池比较大(8G以上),可以按照innodb_buffer_pool_size / innodb_buffer_pool_instances = 1G进行设置,但如果缓冲池特别大(32G以上),可以按照每个实例2~3G进行划分,实例数不是越多越好,多实例代表多线程,线程的开销(CPU、MEM)也得考虑

innodb_log_file_size = xxM

解读:InnoDB日志文件大小(Redo Log),它将事务对InnoDB表的修改记录保存在ib_logfile0、ib_logfile1中。innodb_log_file_size越大,缓冲池中的脏数据需要检查点(checkpoint)进行刷盘的频率就越少,从而减少磁盘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值