按照默认配置安装后,发现每秒读写大概只有15-30条/s。搜索后发现以下配置项可以自己修改一下来提高性能。其中,影响最大的为innodb_flush_log_at_trx_commit。修改后性能提高到了6000条/s以上。
1. max_connections
最大连接数,默认为151。
2. innodb_additional_mem_pool_size
当innodb内存池大小不足时,每次额外分配的内存,默认6M,可适当增加,例如20M。
3. innodb_flush_log_at_trx_commit
这个参数对性能影响非常大,默认值为1,强烈建议修改为2。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,此操作很费时。设成2的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统挂了时才可能丢数据。
4. innodb_buffer_pool_size
缓存池大小,是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认值有8M。在只有InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。
5. innodb_thread_concurrency
InnoDB内并发的操作系统线程数量,建议值是2倍的CPU数目加上磁盘的数量。设置为0为不限制并发数量。
6. innodb_buffer_pool_instances 内存缓冲池数量,影响并发性能。在缓存池较小时,设置为8性能最好。在缓存池较大时,设置为1性能最好。
7. max_connect_errors
最大连接错误数量,超过后会阻止该客户端之后的连接。默认值为10,建议调大以防出现错误后客户端无法连接。
8. wait_timeout
服务器关闭非交互连接之前等待时间,不配置时默认为28800(8小时)。建议配置为30秒。