自从mysql把innodb设置成默认的存储引擎,myIsam就失去了大众的宠爱,至于innodb和myIsam的区别和应用场景请自行百度,这里简单说一下Innodb存储引擎的相关配置参数
Innodb储引擎
Innodb_log_buffer_size 控制事务缓冲区的大小,这个一般无需更改,因为事务缓存更新到日志文件中频率是很快的,但是过快也会影响性能。
Innodb_flush_log_at_trx_commit 控制事务缓冲区更新到文件的频率,参数为0 ,1 ,2
0每秒记录一次事务写入缓存,并更新到log文件中
1 也是mysql默认值,每次事务提交执行log写入缓存中,并更新到文件,性能弱。
2 每次事务提交,执行log数据写入到缓存,每秒执行一次更新到文件中,建议为2,这样就算服务器突然宕机,事务还是能找回来,并且性能影响最小。
Innodb_log_file_size 控制单个事务日志大小,事务的原理就是把操作写入事务日志中,一但事务完成,sql操作就会更新到文件中,反之则不然。
Innodb_log_files_in_group 控制事务文件的个数
Innodb_file_per_table 控制innodb如何使用表空间,强烈建议默认为1 每个表单独一个表空间,就是每张表都有自己的单独文件,有利于读写io和磁盘管理
innodb_doublewrite innodb双写缓存默认为1开启,innodb一个磁盘页为16k,当一个页没有写完整的时候突然宕机退出,不完整的数据会造成磁盘损坏,开启后将避免此情况出现,消耗性能很小。
mysql参数设置
expire_logs_days 指定自动清理binlog的天数
max_allowed_packet 控制mysql可以接收的包的大小,有主从复制的要注意的了从库一定要大于等于主库,否则可能会同步失败。
skip_name_resolve 禁用DNS查找,如果你的mysql各项配置都没有问题,远程权限也开启了,但还是丢失链接,可以看看该配置项是否开启,如果开启了,关闭该设置
sysdate_is_now 确保sysdate()返回确定性日期,如果开启主从复制一定要开启,不然,一旦主从复制中断,可能就续不上了哦
sync_binlog 控制mysql如何向磁盘刷新binlog 就是(二进制日志),主从复制,主机要开启,防止主机宕机后,主从数据不一样,无法继续同步。
tmp_table_size 和max_heap_table_size 控制内存临时表大小。
max_connec
这些设置不要在生产环境下随意更改,一定要开发环境下测试。