Ottimizzare la registrazione write-ahead

Completato

Il write-ahead logging (WAL) scrive prima le modifiche nel log e quindi le conferma nel database. Il log del motore di archiviazione innoDB è chiamato log di rollforward. Se il server si arresta in modo anomalo o è disconnesso dall'alimentazione, eventuali modifiche non scritte sul disco vengono applicate dal redo log.

Ciò significa che molte modifiche possono essere scritte su disco insieme, invece di eseguire il commit di ognuna singolarmente. Ciò può avere un impatto significativo e positivo sulle prestazioni.

Per questa ragione è importante configurare correttamente la dimensione del file di log di rollforward. Troppo piccole e le modifiche devono essere scritte su disco con maggiore frequenza, con un impatto negativo sulle prestazioni.

Per impostazione predefinita, il log di rollforward è costituito da due file. Database di Azure per MySQL consente di configurare l'archiviazione file di log:

  • innodb_log_files_in_group imposta il numero di file di log: il valore predefinito e consigliato è 2.
  • innodb_log_file_size definisce le dimensioni del log in byte: il valore predefinito è 268435456 byte (256 MB).
  • innodb_log_write_ahead_size definisce la dimensione del blocco di scrittura anticipata per il log di rollforward. Il valore predefinito è 8192 byte.
  • innodb_redo_log_encrypt definisce se i dati di log di rollforward devono essere crittografati per le tabelle crittografate. L'impostazione predefinita è OFF.