5.6 Prévention des désastres et restauration
5 Administration du serveur
Manuel de Référence MySQL 4.1 : Version Française
. Sauvegardes de base de données . Utilisation de myisamchk pour la maintenance des tables et leur recouvrement . Mettre en place un régime d'entretien de MySQL ->Obtenir des informations sur une table
|
5.6.4 Obtenir des informations sur une table
Pour obtenir la description d'une table ou des statistiques à son sujet,
utiliser les commandes affichées ici. Nous allons expliquer certains de leurs
détails ultérieurement.
- myisamchk -d nom_de_table
Exécute
myisamchk
en ``mode description'' pour produire une description
de votre table. Si vous démarrez le serveur MySQL en utilisant l'option
--skip-external-locking
,
myisamchk
va rapporter une erreur si la table
est modifiée durant l'exécution de la commande. Cependant, comme
myisamchk
ne modifie pas les tables, durant le mode description, il n'y
a pas de risque de perte de données.
- myisamchk -d -v nom_de_table
Pour produire plus d'informations durant l'exécution de
myisamchk
, ajoutez
l'option
-v
pour indiquer qu'elle doit fonctionner en mode détaillé.
- myisamchk -eis nom_de_table
Affiche les informations les plus importantes pour une table. C'est une commande
lente, car elle doit lire toute la table.
- myisamchk -eiv nom_de_table
C'est l'équivalent de
-eis
, mais qui vous indique ce qui se passe.
Exemple d'affichage résultant de
myisamchk -d
:
MyISAM file: company.MYI Record format: Fixed length Data records: 1403698 Deleted blocks: 0 Recordlength: 226 table description: Key Start Len Index Type 1 2 8 unique double 2 15 10 multip. text packed stripped 3 219 8 multip. double 4 63 10 multip. text packed stripped 5 167 2 multip. unsigned short 6 177 4 multip. unsigned long 7 155 4 multip. text 8 138 4 multip. unsigned long 9 177 4 multip. unsigned long 193 1 text
|
Exemple d'affichage résultant de
myisamchk -d -v
:
MyISAM file: company Record format: Fixed length File-version: 1 Creation time: 1999-10-30 12:12:51 Recover time: 1999-10-31 19:13:01 Status: checked Data records: 1403698 Deleted blocks: 0 Datafile parts: 1403698 Deleted data: 0 Datafilepointer (bytes): 3 Keyfile pointer (bytes): 3 Max datafile length: 3791650815 Max keyfile length: 4294967294 Recordlength: 226 table description: Key Start Len Index Type Rec/key Root Blocksize 1 2 8 unique double 1 15845376 1024 2 15 10 multip. text packed stripped 2 25062400 1024 3 219 8 multip. double 73 40907776 1024 4 63 10 multip. text packed stripped 5 48097280 1024 5 167 2 multip. unsigned short 4840 55200768 1024 6 177 4 multip. unsigned long 1346 65145856 1024 7 155 4 multip. text 4995 75090944 1024 8 138 4 multip. unsigned long 87 85036032 1024 9 177 4 multip. unsigned long 178 96481280 1024 193 1 text
|
Exemple d'affichage résultant de
myisamchk -eis
:
Checking MyISAM file: company Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 4 Key: 2: Keyblocks used: 98% Packed: 50% Max levels: 4 Key: 3: Keyblocks used: 97% Packed: 0% Max levels: 4 Key: 4: Keyblocks used: 99% Packed: 60% Max levels: 3 Key: 5: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 6: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 7: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 8: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 9: Keyblocks used: 98% Packed: 0% Max levels: 4 Total: Keyblocks used: 98% Packed: 17% Records: 1403698 M.recordlength: 226 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1403698 Delete blocks: 0 Recorddata: 317235748 Deleted data: 0 Lost space: 0 Linkdata: 0 User time 1626.51, System time 232.36 Maximum resident set size 0, Integral resident set size 0 Non physical pagefaults 0, Physical pagefaults 627, Swaps 0 Blocks in 0 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 639, Involuntary context switches 28966
|
Exemple d'affichage résultant de
myisamchk -eiv
:
Checking MyISAM file: company Data records: 1403698 Deleted blocks: 0 - check file-size - check delete-chain block_size 1024: index 1: index 2: index 3: index 4: index 5: index 6: index 7: index 8: index 9: No recordlinks - check index reference - check data record references index: 1 Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 4 - check data record references index: 2 Key: 2: Keyblocks used: 98% Packed: 50% Max levels: 4 - check data record references index: 3 Key: 3: Keyblocks used: 97% Packed: 0% Max levels: 4 - check data record references index: 4 Key: 4: Keyblocks used: 99% Packed: 60% Max levels: 3 - check data record references index: 5 Key: 5: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 6 Key: 6: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 7 Key: 7: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 8 Key: 8: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 9 Key: 9: Keyblocks used: 98% Packed: 0% Max levels: 4 Total: Keyblocks used: 9% Packed: 17% - check records and index references [LOTS OF ROW NUMBERS DELETED] Records: 1403698 M.recordlength: 226 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1403698 Delete blocks: 0 Recorddata: 317235748 Deleted data: 0 Lost space: 0 Linkdata: 0 User time 1639.63, System time 251.61 Maximum resident set size 0, Integral resident set size 0 Non physical pagefaults 0, Physical pagefaults 10580, Swaps 0 Blocks in 4 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 10604, Involuntary context switches 122798
|
Voici les tailles des fichiers de données et d'index utilisés dans les tables
précédentes :
-rw-rw-r-- 1 monty tcx 317235748 Jan 12 17:30 company.MYD -rw-rw-r-- 1 davida tcx 96482304 Jan 12 18:35 company.MYM
|
Des détails sur les types d'informations retournés par
myisamchk
sont
listés ici. Le ``keyfile'' est le fichier d'index. ``Record'' et ``row''
sont synonymes de ligne :
- ISAM file
Nom du fichier d'index ISAM.
- Isam-version
Version du format ISAM. Actuellement, c'est toujours 2.
- Creation time
Date de création du fichier de données.
- Recover time
Date de dernière reconstruction du fichier de données ou d'index.
- Data records
Combien de lignes sont stockées dans la table.
- Deleted blocks
Combien de blocs effacés occupent toujours de l'espace.
Vous pouvez optimiser la table pour récupérer cet espace.
Optimisation de table .
- Data file: Parts
Pour les tables au format de ligne dynamique, ceci indique combien de blocs de
données sont présents. Pour une table optimisée sans lignes fragmentées, la valeur
doit être égale à
Data records
.
- Deleted data
Combien d'octets de données effacées et non réutilisées sont
présents dans la table.
Vous pouvez optimiser la table pour récupérer cet espace.
Optimisation de table .
- Data file pointer
La taille du pointeur de fichier de données, en octets. C'est généralement
2, 3, 4, ou 5 octets. La plupart des tables peuvent se gérer avec 2 octets,
mais ceci ne peut être contrôlé par MySQL actuellement. Pour les tables
à format de ligne fixe, c'est une adresse de ligne. Pour les tables dynamiques,
c'est une adresse d'octet.
- Keyfile pointer
La taille du pointeur de fichier d'index, en octets. C'est généralement
1, 2 ou 3 octets. La plupart des tables supportent 2 octets, mais cela est
calculé automatiquement par MySQL. C'est toujours une adresse de bloc.
- Max datafile length
Taille maximale du fichier de données (
.MYD
file), en octets.
- Max keyfile length
Taille maximale du fichier d'index (
.MYI
file), en octets.
- Recordlength
Taille occupée par chaque ligne, en octets.
- Record format
Le format utilisé pour stocker les lignes de la table.
Les exemples ci-dessus utilisaient
Fixed length
.
Les autres valeurs possibles sont
Compressed
et
Packed
.
- table description
Une liste de toutes les clés de la table. Pour chaque clé, des informations
de bas niveau sont présentées :
- Key
Le numéro d'index.
- Start
Où, dans la ligne, l'index débute.
- Len
Taille de cette partie d'index. Pour les nombres compactés, c'est toujours la
taille maximale de la colonne. Pour les chaînes, c'est plus petit que la taille
maximale de la colonne index, car vous pouvez indexer un préfixe de la chaîne.
- Index
unique
et
multip.
(multiple). Indique si une valeur peut exister plusieurs
fois dans cet index.
- Type
De quel type de données cet index est. C'est un type de données ISAM
avec les options
packed
,
stripped
ou
empty
.
- Root
Adresse du premier bloc d'index.
- Blocksize
La taille de chaque bloc d'index. Par défaut, c'est 1024, mais cette valeur
peut être modifiée lors de la compilation.
- Rec/key
C'est une valeur statistique, utilisée par l'optimisateur. Il indique
combien de lignes sont disponibles par valeur de cette clé. Une clé unique
aura toujours une valeur de 1. Cela peut être modifié une fois que la table est
chargée (ou modifiée de façon majeure), avec la commande
myisamchk -a
. Si ce n'est pas mis à jour, une valeur par défaut de
30 est utilisée.
-
Dans le premier exemple ci-dessus, la neuvième clé est une clé multi-partie,
avec deux parties.
- Keyblocks used
Quel pourcentage des blocs de clé est utilisé. Comme les tables utilisées
dans les exemples ont tout juste été réorganisées avec
myisamchk
, ces
valeurs sont très grandes (très proches du maximum théorique).
- Packed
MySQL essaie de compacter les clés ayant un préfixe commun. Cela ne peut
être utilisé que pour les colonnes de type
CHAR
/
VARCHAR
/
DECIMAL
.
Pour les longues chaînes comme des noms, cette technique va significativement
réduire l'espace utilisé. Dans le troisième exemple ci-dessus, la quatrième clé
fait 10 caractères de long et a une réduction de 60 % dans l'espace utilisé effectivement.
- Max levels
La profondeur du B-tree. Les grandes tables avec de longues clés peuvent
obtenir de grandes valeurs.
- Records
Combien de lignes sont enregistrées dans la table.
- M.recordlength
La taille moyenne d'une ligne. Pour les tables avec un format de ligne statique,
c'est la taille de chaque ligne.
- Packed
MySQL efface les espaces à la fin des chaînes.
Packed
indique le pourcentage d'économie d'espace réalisé.
- Recordspace used
Quel est le pourcentage d'utilisation du fichier de données.
- Empty space
Quel est le pourcentage d'utilisation du fichier d'index.
- Blocks/Record
Le nombre moyen de blocs par enregistrements (c'est à dire, de combien de liens
une ligne fragmentées est constituée). C'est toujours 1.0 pour les tables à
format de ligne statique. Cette valeur doit être aussi proche que possible
de 1.0. Si elle grossit trop, vous pouvez réorganiser la table avec
myisamchk
.
Optimisation de table .
- Recordblocks
Combien de blocs sont utilisés. Pour les tables à format de ligne fixe,
c'est le même nombre que le nombre de lignes.
- Deleteblocks
Combien de blocs (liens) sont effacés.
- Recorddata
Combien d'octets sont utilisés dans le fichier.
- Deleted data
Combien d'octets dans le fichier de données sont effacés (inutilisés).
- Lost space
Si une ligne est modifiée, et réduite en taille, de l'espace est perdu.
Ce chiffre est la somme de ces espaces perdus, en octets.
- Linkdata
Lorsque le format de ligne dynamique est utilisé, les fragments de lignes
sont liés avec des pointeurs de (4 à 7 octets chacun).
Linkdata
est la somme
du stockage utilisé par ces pointeurs.
Si une table a été compressée avec
myisampack
,
myisamchk -d
affiche
des informations supplémentaires à propos de chaque colonne. Voir
myisampack
, le générateur de tables MySQL compressées en lecture seule , pour un exemple de ces informations,
et une description de leur signification.
|