mysql sync_binlog

我被告知,在mysql同步,以确保一切正在复制和数据是安全的,syn_binlog设置(在my.conf中)应设置为1。

只有这样才能杀死性能,解决这个问题的最好方法是什么?

我也读到,这主要是Linux上的ext3文件系统的原因。 将sync_binlog设置为0是否安全?

基本上真正的问题是,如果你不想丢失数据,你需要打开sync_binlog吗?

性能影响是额外的查找和写入的成本。 sync_binlog = 1基本上告诉MySQL在刷新日志写入磁盘之前有多less个二进制日志写入缓冲区。 如果它被设置为1,那么每个写入都被刷新。 0告诉MySQL让文件系统处理它。 所以,如果你有一个磁盘故障,你可能会失去一些不确定数量的二进制日志写入,这是最后一个事务的一部分。

根据您的存储设置(具有电池备份caching的SAN,直接连接的驱动器等),设置为0可能是安全的,或者可能不安全。 您和您的应用程序可以承受多less数据丢失?

引用MySQL的参考:

sync_binlog的默认值是0,不同步到磁盘。 值为1是最安全的select,因为在发生崩溃时,您最多会从二进制日志中丢失至多一个语句或事务。 但是,这也是最慢的select(除非磁盘有一个电池支持的caching,这使得同步非常快)。