Mysql 参数优化

1. my.cnf中的把  innodb_buffer_pool_size=16G 

别占满了内存。

2. my.cnf中的把  innodb_log_buffer_size= 50M

这个主要是满足大事务的需求。
3. my.cnf中的把  innodb_log_file_size= 4G     (这个是在硬盘,所以先设大
点,这个值设大点可能导致 mysql  crash之后恢复会比较慢,但好处是性能会比
较高)
4. my.cnf 中的把 innodb_write_io_threads= 8
5. my.cnf 中的把 innodb_read_io_threads= 8

上面两个值看需求
6. 如果系统并发量大的话(上百上千。。。可能你们用不到),可以考虑把
   innodb_buffer_pool_instances设大,但是需要注意
innodb_buffer_pool_instances * innodb_buffer_pool_size 别大于16G
7. my.cnf中在[mysqld]下面添加 innodb_file_per_table
8. 如果业务对事务的安全性要求不是特别强的话
   my.cnf中在[mysqld]下添加(或修改)
        innodb_flush_log_at_trx_commit=2
   存在的风险是如果操作系统crash了或机器断电了,最后一秒所有提交事务可能
会丢失,这里是已经提交的,所以你那里的应用端应该已经正确返回了。
9. 另外您可以考虑对数据压缩,
   my.cnf中的把 ROW_FORMAT=COMPRESSED

   如果有很大的text,BLOB, VARCHAR 可以考虑使用。

http://www.mysqlperformanceblog.com/2012/05/30/data-compression-in-innodb-for-text-and-blob-fields/

10. 在my.cnf的 [mysqld]中 transaction-isolation= REPEATABLE-READ   (这个是默认值。。。)

     如果隔离级别低于 REPEATABLE-READ  ,binlog会按照语句级来记录,当进行批量插入,删除时候,可能会影响性能。


11. expire_logs_days=3   保留3天(包括今天)的binlog文件

以避免binlog占用过多的磁盘空间。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值