Tables InnoDB
<<<
Accès disques Utiliser les raw devices pour l'espace de tables
>>>

16.15 Gestion de l'espace fichiers et des entrées/sorties disque
16 Tables InnoDB
 Manuel de Référence MySQL 4.1 : Version Française

->Accès disques
Utiliser les raw devices pour l'espace de tables
Gestion de l'espace fichier
Défragmentation des tables

16.15.1 Accès disques

Lors des accès disque, InnoDB utilise un accès asynchrone. Sous Windows NT, il utilise le mode natif asynchrone, fourni par le système d'exploitation. Sous Unix, InnoDB utilise un mode asynchrone simulé, intégré à InnoDB : InnoDB crée un nombre de threads d'accès disques pour prendre en charge les opérations disques, comme les lectures. Dans les prochaines versions, nous allons ajouter le support des accès disques simulés à Windows NT et les accès natifs à Unix.

Sous Windows NT, InnoDB utilise des accès non bufferisés. Cela signifie que les pages disques que InnoDB lit ou écrit ne sont pas mis en cache par le système d'exploitation. Cela économise de la mémoire.

Depuis la version 3.23.41, 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.

Depuis la version 3.23.41, vous pouvez aussi utiliser une partition brute de disque comme fichier de données, même si cela n'a pas été testé pour le moment. Lorsque vous crée un nouveau fichier de données, vous devez ajouter le mot clé newraw immédiatement après la taille du fichier de données, dans innodb_data_file_path . La partition doit être supérieure ou égale à cette taille. Notez que 1M pour InnoDB est 1024 x 1024 octets, alors que les spécifications de disques utilisent souvent la convention de 1 Mo vaut 1000 000 octets (un million).

innodb_data_file_path=hdd1:5Gnewraw;hdd2:2Gnewraw
Lorsque vous démarrez la base à nouveau, vous devez changer le mot clé à raw . Sinon, InnoDB va écrire sur votre partition!

innodb_data_file_path=hdd1:5Graw;hdd2:2Graw
En utilisant un disque brut, vous pouvez réaliser des opérations non bufferisée sous Unix.

InnoDB dispose de deux heuristiques de lectures : lecture séquentielle et lecture aléatoire. En mode séquentiel, InnoDB remarque que l'accès à un segment de la table est séquentiel. Il va alors anticiper, et faire des lectures de plusieurs pages dans la base. En mode aléatoire, InnoDB note qu'une partie de la table est lue dans son entier. Il va alors anticiper, et faire automatiquement les dernières lectures.

<< Accès disques >>
Tables InnoDB Gestion de l'espace fichiers et des entrées/sorties disque Utiliser les raw devices pour l'espace de tables