O impacto no desempenho é o custo da busca e da gravação adicionais. sync_binlog = 1 basicamente informa ao MySQL quantas gravações de log binário são armazenadas no buffer antes de liberar as gravações de log no disco. Se estiver definido como 1, toda gravação será liberada. 0 diz ao MySQL para deixar o sistema de arquivos lidar com isso. Portanto, se você tiver uma falha de disco, poderá perder um número indeterminado de gravações de log binário que fazem parte da última transação.
Dependendo da sua configuração de armazenamento (SAN com cache protegido por bateria, unidades conectadas diretamente, etc.), uma configuração de 0 pode ser segura ou não. Quanta perda de dados você e seu aplicativo podem tolerar?
para citar a referência do MySQL:
The default value of sync_binlog is 0, which does no synchronizing to disk. A value of 1 is the safest choice because in the event of a crash you lose at most one statement or transaction from the binary log. However, it is also the slowest choice (unless the disk has a battery-backed cache, which makes synchronization very fast).