InnoDB
utilise des accès disques
asynchrones : InnoDB
crée quelques threads
pour s'occuper des opérations de lecture, notamment les
lectures anticipées.
Voici deux heuristiques de lectures anticipées de
InnoDB
:
Dans une lecture anticipée séquentielle, si
InnoDB
remarque que l'accès à une
partie de l'espace de table est séquentiel, il fait
plusieurs lectures à l'avance.
Dans une lecture aléatoire, si InnoDB
remarque qu'une partie de l'espace de tables semble être
totalement lu dans le buffer, il va aussi faire une lecture
à l'avance.
Depuis la version 3.23.40b, InnoDB
utilise
une nouvelle technique de flush de fichier, appelée
doublewrite. Elle apporte de la sécurité lors de la
restauration après crash du système d'exploitation, ou un
problème électrique, et améliore les performances sous Unix,
pour plusieurs distributions, en réduisant le besoin de
synchronisation.
Doublewrite
(Double écriture, en fran¸ais)
signifie que InnoDB
, avant d'écrire les
pages dans le fichier de données, les écrits dans une zone
continue d'espace, appelée un buffer de double écriture. Une
fois que cette écriture est faite, que le buffer de double
écriture a été vidé, InnoDB
écrit les
pages à leur destination finale. Si le système d'exploitation
crashe entre temps, InnoDB
va trouver une
bonne copie des données dans le buffer, lors de la
restauration.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.