|
Cette section répond aux questions "Qu'elle est la stabilité de MySQL?'' et, ``Puis-je faire confiance à MySQL sur ce projet?''. Nous allons essayer de clarifier quelques problèmes et répondre aux questions les plus importantes qui concernent une majorité de personnes. Cette section rassemble les informations récoltées dans la liste de diffusion (qui est très active dans l'identification des bogues).
A TcX, MySQL fonctionne depuis mi-1996 sans aucun problème. Lorsque MySQL a été diffusé auprès du grand public, un certain nombre de codes n'avaient pas été testés et ils ont été vite identifiés par les nouveaux utilisateurs qui ont utilisé les requêtes d'une manière différente de la notre. Chaque nouvelle release a moins de problèmes de portabilité que la précédente (même si à chaque fois de nouvelles fonctionnalités sont identifiées), et nous espérons bientôt qu'une prochaine version sera labellisée "Stable".
Chaque release de MySQL est utilisable et il n'y a de problèmes uniquement lorsque les utilisateurs commencent à utiliser les "zones d'ombres". Naturellement, il est difficile de connaître le contenu de ces zones d'ombres; cette section a pour objectif d'identifier les zones connues. La description concerne la version 3.22.x de MySQL. Tous les bogues connus sont corrigés dans la dernière version, à l'exception de la liste des bogues répertoriés dans la section des erreurs. Cf. section E Erreurs connues et manques de MySQL.
MySQL est décomposé en plusieurs couches et différents modules indépendants. Les modules sont listés ci-dessous avec leur état de stabilité :
Le gestionnaire de tables ISAM -- Stable
-
Il gère le stockage et la lecture de toutes les données. Dans toutes les releases de MySQL, un seul bogue a été reporté. La seule façon connue d'avoir une table corrompue est de "tuer" le serveur au milieu de la mise à jour. Et même un tel scénario ne détruira probablement pas toutes les données sans qu'il soit possible de les récupérer, car toutes les données sont vidées de la mémoire, entre chaque requête. Il n'y a jamais eu de bogues liés à la destruction de données.
L'analyseur syntaxique et l'analyseur lexical -- Stable
-
Il n'y a pas un seul bogue d'identifié depuis longtemps dans ce module.
Le code du client C -- Stable
-
Pas de problèmes connus. Dans la version précédente 3.20, il y avait quelques limites dans la taille du buffer d'envoi/réception. Depuis de la 3.21.x, la taille du buffer est maintenant dynamique et initialisé par défaut à 24M.
Programmes clients standards -- Stable
-
Cela inclus
mysql , mysqladmin et mysqlshow , mysqldump , et mysqlimport .
Basic SQL -- Stable
-
Système de fonction basic SQL, classes de chaînes de caractères et gestion dynamique de la mémoire. Pas de bogues identifiés.
Optimiseur de requête -- Gamma
-
Optimiseur d'intervalle -- Stable
-
Optimiseur de jointure -- Stable
-
Verrouillage -- Gamma
-
Cela est très dépendant du système. Sur certains systèmes il y a de gros problèmes en utilisant le verrouillage standard de l'OS (
fcntl() ). Dans ces cas là, vous devriez faire fonctionner le démon MySQL avec l'option --skip-locking . Les problèmes sont connus, sur quelques systèmes Linux et sur SunOS lorsque le gestionnaire de fichiers est monté sur NFS.
Linux threads -- Gamma
-
Le seul problème identifié concerne l'appel de la fonction
fcntl() , qui est résolu en utilisant l'option --skip-locking de mysqld . Quelques personnes ont reporté des problèmes avec la version release 0.5.
Solaris 2.5+ pthreads -- Stable
-
Nous l'utilisons pour nos systèmes en production.
MIT-pthreads (autres systèmes) -- Gamma
-
Il y a pas de bogues identifiés depuis la 3.20.15 et la 3.20.16. sur quelques systèmes, il y a un disfonctionnement . Quelques opérations sont assez lentes (un arrêt de 1/20 second est effectué entre chaque requête). Bien sur, MIT-pthreads peut ralentir un peu l'ensemble, mais les commandes
SELECT qui utilisent des index sont faites en un laps de temps tellement court, que le verrouillage et l'échange de thread n'est pas nécessaire.
Autres implémentations -- Alpha - Beta
-
Le portage sur d'autres systèmes restent assez nouveau et ont peut-être des bugs, probablement dans le serveur MySQL, et plus certainement dans l'implémentation des threads.
LOAD DATA ... , INSERT ... SELECT -- Stable
-
Quelques personnes ont cru identifier des bogues dans ce module, c'était lié à une méprise. Vérifier la documentation sur le sujet!
ALTER TABLE -- Gamma
-
Changements mineures dans la 3.22.12.
DBD -- Gamma
-
Maintenant maintenu par Jochen Wiedmann
mysqlaccess -- Gamma
-
Ecrit et maintenu par Yves Carlier
GRANT -- Beta
-
Gros changement dans la MySQL 3.22.12.
MyODBC (utilise ODBC SDK 2.5) -- Beta
-
Il fonctionne normalement avec la plupart des programmes.
TcX fournit un support payant par email, cependant la mailing liste MySQL répond à la plupart des questions. Les bogues sont en général corrigés par des patchs; pour les bogues plus importants, il y a de nouvelles versions.
|