O formato de replicação baseado em linha na verdade usa mais espaço em disco que o baseado em instruções. Isso é simples porque no log binário você teria todos os dados que foram inseridos / atualizados não apenas na instrução. Portanto, se uma instrução disser para inserir 100 linhas, se binlog_format = STATEMENT inserir apenas uma instrução, mas se ROW realmente conter todas as entradas.
Portanto, para economizar espaço em disco, é necessário reverter para STATEMENT. Em um modo mix, o mysql tentará escrever como um STATEMENT no log binário, mas no caso de declarações inseguras, ele será revertido para ROW. No seu caso, parece que você tem muitas declarações inseguras, então você acaba com binlogs baseados em ROW.
Você pode fazer algumas coisas
-
deixe-o como ROW e implemente um trabalho de limpeza que limpará os logs após um período de tempo. Para isso, é necessário calcular o que é apropriado para o seu sistema. Antes de excluir os registros, você deve copiá-los em outro lugar para não perdê-los.
-
implemente a replicação através de um segundo sistema e tenha novamente um trabalho de limpeza no mestre (verifique se o escravo está em sincronia ou se você pode perder dados)
-
dê uma boa olhada nas declarações potencialmente inseguras, isso pode exigir colaboração com os desenvolvedores do seu aplicativo.