Nous démarrons par le niveau du système, car certaines décisions à ce niveau doivent être prises très tôt. Dans d'autres cas, un regard rapide à cette partie doit suffire, car ce n'est pas tellement important pour les gros gains. Toutefois, il est toujours sympathique de sentir combien on peut gagner en changeant des choses à ce niveau.
Le choix du système d'exploitation est vraiment important! Pour utiliser au maximum les capacités de machines multi-processeurs, il vaut mieux choisir Solaris (car les threads marchent vraiment très bien) ou Linux (car le noyau 2.2 supporte très bien le SMP). Mais les plates-formes Linux 32 bits limitent par défaut la taille des fichiers à 2 Go. Heureusement, cela sera bientôt réparé avec l'arrivée des nouveaux systèmes de fichier (XFS/Reiserfs). Si vous souhaitez désespérement utiliser des fichiers de plus de 2 Go sur Linux-intel 32 bits, vous devriez utiliser le patch de LFS pour le système de fichier ext2
Comme nous n'avons pas utilisé MySQL en production sur énormément de plates-formes, nous vous conseillons de tester votre plate-forme avant de la choisir définitivement.
Autres astuces:
Si vous avez suffisamment de RAM, vous pouvez supprimer toutes les partitions d'échange (swap). Certains systèmes d'exploitation utilisent parfois la partition d'échange quand bien même il reste de la mémoire libre.
L'utilisation de l'option
--skip-external-locking
de MySQL empêche
les verrous externes. Cela n'influencera pas les
fonctionnalités de MySQL tant que vous n'utilisez qu'un
seul serveur. Il faut cependant penser à arrêter le
serveur (ou bien de verrouiller les parties pertinentes)
avant d'utiliser myisamchk
. Sur certains
systèmes, cette option est inutile car les verrous externes
ne fonctionnent pas du tout.
L'option --skip-external-locking
est
activée par défaut quand on compile avec
MIT-pthreads
, car
flock()
n'est pas totalement supporté
sur toutes les plates-formes par
MIT-pthreads
. Elle l'est également sur
Linux, cat le verrouillage des fichiers de Linux n'est pas
encore sûr.
Les seuls cas où on ne peut pas utiliser
--skip-external-locking
sont si on utilise
plusieurs serveurs (pas de clients)
MySQL sur les mêmes données, ou si on lance
myisamchk
sur une table sans vider son
tampon et sans la verrouiller au préalable.
Il est toujours possible d'utiliser LOCK
TABLES
/UNLOCK TABLES
même si
vous utilisez --skip-external-locking
.
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.