其他优化

Innodb_buffer_pool_size

1,Innodb_buffer_pool_size:innodb的缓存,可以用于缓存索引,同时还会缓存实际的数据;

 innodb_buffer_pool_size 参数用来设置Innodb 最主要的Buffer(Innodb_Buffer_Pool)的大小,对Innodb 整体性能影响也最大,可以按需要设置大一些;

2,可以通过show status like 'Innodb_buffer_pool_%';查看innodb buffer的状态

1,Innodb_buffer_pool_pages_data:使用到了的缓存页数;
2,Innodb_buffer_pool_pages_flushed:刷新过的缓存页数;
3,Innodb_buffer_pool_pages_free:剩余的缓存页数;
4,Innodb_buffer_pool_pages_total:总缓存页数;
5,Innodb_buffer_pool_read_requests:从缓存中读取的数据量;
6,Innodb_buffer_pool_reads:直接从磁盘读取的数据量;

3,可以通过这些参数计算出缓存命中率和缓存利用率等;

事务优化

隔离级别优化

1,innodb实现了READ UNCOMMITTED/READ COMMITTED/REPEATABLE READ/SERIALIZABLE四种隔离级别;
2,默认使用REPEATABLE READ隔离级别;
3,可以通过SELECT @@tx_isolation;查看当前的事务隔离级别;
4,可以通过set tx_isolation='read-committed';来修改默认的事务隔离级别;

innodb_flush_log_at_trx_commit

1,理解Innodb事务机制:

1,事务在buffer中对数据进行修改;
2,事务的变化记录在事务日志中;
3,在合适的时机同步事务日志中的数据到数据库中;

2,所以什么时候提交事务日志文件,对系统性能影响较大,可以通过设置innodb_flush_log_at_trx_commit来修改事务日志同步时机:

1,innodb_flush_log_at_trx_commit = 0,每1秒钟同步一次事务日志文件;
2,innodb_flush_log_at_trx_commit = 1,默认设置,每一个事务完成之后,同步一次事务日志文件;
3,innodb_flush_log_at_trx_commit = 2,事务完成之后,写到事务日志文件中,等到日志覆盖再同步数据;
注意,1性能最差,2不能完全保证数据是写到数据文件中,如果宕机,可能会有数据丢失现象,但性能最高;1,性能和安全性居中;

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注