 |

Cette section a été écrite par des développeurs MySQL, et il doit être lu avec quelques reserves. Cependant, il n'y a AUCUNE erreur factuelle, autant que nous le sachions.
Pour une liste complète de toutes les limites, fonctions et types, allez à crash-me (en anglais).
- Performance
-
Pour une comparaison de performances valide, consultez la suite de tests.
11 La suite de tests de MySQL.
Parce qu'il n'y a pas de création de thread général, que l'analyseur syntaxique est compact, les fonctionnalités peu nombreusese, et
la sécurité simple,
mSQL est plus rapide dans les tches suivantes :
-
Tests qui effectuent des connexions/deconnexion repetées, avec une requête tres simple entre les deux.
-
Opérations
INSERT dans des tables simples, avec quelques colonnes et clés.
-
CREATE TABLE et DROP TABLE .
-
SELECT sur ce qui n'est pas un index. (l'analyse d'une table est très simple).
Etant donné que ces opéartions sont simples, il est très difficile de les surpasser dès qu'on a une partie administrative plus importante. Apres l'établissement de la connexion, MySQL devrait être plus rapide.
D'un autre coté, MySQL est beaucoup plus rapide que mSQL (et que
la plus part des implémentation SQL) dans les cas suivants :
-
Opérations
SELECT complexes.
-
Récupération de résultat très importants (MySQL a un protocol pluls rapide, plus sur et bien meilleur).
-
Tables à longueur d'enregistrement variable, étant donné que MySQL les gère mieux,
et qu'il autorise les index sur les colonnes
VARCHAR .
-
Gestion des tables ayant beaucoup de colonnes.
-
Gestion des tables ayant des lignes de très grande taille.
-
SELECT avec de nombreuses expressions.
-
SELECT sur les grandes tables.
-
Gestion de plusieurs connexions simultanées. MySQL est complétement multi-threaded. Chaque connexion a son propre thread, ce qui fait que les threads ne s'attendent pas les uns les autres (sauf lorsque des LOCK sont posés sur les tables). Avec
mSQL , une fois la connexion établie, les autres doivent attendre que le premier ait terminé, quelque soit la requête lancée. Lorsque cette dernière est terminée, la connexion se termine, et la prochaine connexion est ouverte.
-
Jointures.
mSQL peut devenir desespérement lent si vous changez l'ordre des tables dans
la commande SELECT . Dans la suite de teste, il est arrivé que mSQL soit 15000 fois plus lent que MySQL
Cela est du à mSQL à qui manque un optimisateur de jointures. Cependant,
si vous placez les tables dans le bon ordre, si la clause WHERE est simple
et si elle utilise des colonnes indexées, la jointure sera plutôt rapide.
11 La suite de tests de MySQL.
-
ORDER BY et GROUP BY .
-
DISTINCT .
-
Utiliser des colonnes de type
TEXT ou BLOB .
- SQL
-
- Utilisation du disque
-
A quel point pouvez vous réduire vos tables?
MySQL dispose de types de colonnes précis, qui vous permettent de créer des tables qui prenent le moins de place possible. Comme exemple de type de table bien pratique, nous pouvons prendre
MEDIUMINT qui ne prend que 3 octets. Si vous avez 100,000,000 enregistrements, économiser 25% de la place peut être primordial.
mSQL2 dispose de beaucoup moins de types de colonnes, et cela rend difficile la réduction de tables.
- Stabilité
-
Cela est plus difficile à estimer objectivement. Pour la stabilité, voyez 1.5 Est ce que MySQL est stable?.
Nous n'avons aucune experience en terme de stabilité
mSQL , et nous ne nous étendrons pas sur ce point.
- Prix
-
Un autre élément d'importance est la licence. MySQL a une licence plus souple que
mSQL , et il est aussi moins cher que mSQL .
Quelque soit le produit que vous décidez de choisir, pensez à prendre une licence ou un support email.
(Il vous faut aquérir une licence pour inclure MySQL dans un produit que vous vendez).
- Interfaces Perl
-
MySQL a pratiquement les mêmes interfaces avec Perl que
mSQL mais avec quelques fonctionnalités en plus.
- JDBC (Java)
-
MySQL dispose actuellement de 4 pilotes JDBC :
-
Le pilote gwe : une interface Java par GWE technologies (plus du tout supportée).
-
Le pilote jms : un pilote gwe amélioré par Xiaokun Kelvin ZHU
-
Le pilote twz : Un pilote de type 4 JDBC par Terrence W. Zellers
-
Le pilote mm : Un pilote de type 4 JDBC par Mark Matthews
Les pilotes recommendés sont twz et mm. Les deux fonctionnent parfaitement.
Nous savons que mSQL dispose d'un pilote JDBC, mais nous n'avons que très peu d'expérience, et ne pouvons pas comparer.
- Vitesse de developpement
-
MySQL dispose d'une petite équipe de développeur, mais nous sommes habitués à
travailler en C et C++ très rapidement. Etant donné que les threads, fonctions,
GROUP BY etc...
ne sont pas implémentés dans mSQL , il a pas mal de retard.
Pour dire les choses simplement, il suffit de comparer le fichier d'historique
de mSQL et de le comparer à la section news de MySQL Reference Manual ( D Historique des versions de MySQL).
Le logiciel le plus rapidement developpé est une évidence.
- Programmes utilitaires.
-
mSQL et MySQL dispose d'outils partenaires très interssants.
Etant donné qu'il n'est pas facile de porter ces outils de MySQL à
mSQL), la plus part des applications interssantes, disponibles
pour mSQL sont aussi disponibles pour MySQL.
MySQL est livré avec un utilitaire tout simple, msql2mysql
qui corrige les problèmes d'orthographe dans les API C entre mSQL et MySQL
Par exemple, il va remplacer les appels à msqlConnect() par
mysql_connect() . Convertir un programme client de mSQL à MySQL
ne prend que quelques minutes.
Sommaire:
|