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

Mysql 参数优化

2015-01-18 20:15 225 查看
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占用过多的磁盘空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: