Services webmasters
Partenaires
Jeux concours gratuits
 
Informations générales
<<<
MySQL face à mSQL Comparatif de MySQL avec PostgreSQL
>>>

1.9 Comparatif de MySQL avec les autres serveurs SQL
1 Informations générales
 Manuel de Référence MySQL 4.1 : Version Française

->MySQL face à mSQL
Comparatif de MySQL avec PostgreSQL

1.9.1 MySQL face à mSQL

    Performance
    Pour un véritable test de vitesse, consultez la suite de test de MySQL. La suite de tests comparatifs de MySQL .

    Comme il n'y a pas de création de threads, que l'analyseur est plus petit, et que les fonctionnalités sont moins nombreuses, mSQL devrait être plus rapide avec :

      les tests qui réalisent des connexions répétées et qui n'exécutent qu'une simple requête à chaque fois.
      les opérations d' INSERT dans des tables très simples, avec peu de colonnes et d'index.
      les commandes de CREATE TABLE et DROP TABLE .
      les commandes SELECT sur tout ce qui n'est pas indexé (un scan de table est très facile).
    Comme ces opérations sont très simples, il est difficile d'être meilleur lorsque les coûts d'administration sont bien plus forts. Une fois la connexion établie, le serveur MySQL devrait être bien plus rapide.D'un autre coté, le serveur MySQL est plus rapide que mSQL (et que les autres serveurs SQL) avec :
      les opérations SELECT complexes.
      les lectures de grands résultats (le serveur MySQL a un protocole plus rapide, plus sûr et bien meilleur).
      les tables à taille de chaînes variable, car le serveur MySQL a une gestion plus efficace et utilise les colonnes VARCHAR indexées.
      la gestion des tables avec de nombreuses colonnes.
      la gestion des tables ayant des grandes lignes.
      les commandes SELECT avec de nombreuses expressions.
      les commandes SELECT sur de grandes tables.
      la gestion de nombreuses connexions simultanées. Le serveur MySQL est complètement multi-threadé. Chaque connexion possède son propre thread, ce qui signifie qu'il y a pas d'attente entre les threads (à moins que l'un d'entre eux modifie une table que l'autre veut utiliser). En mSQL , une fois que la connexion a été établie, les autres doivent attendre que la première ait fini, indépendamment de la durée d'exécution de la requête. Lorsque la première connexion se termine, le suivant peut être servi, tandis que les autres attendent.
      les jointures. mSQL peut devenir irrémédiablement lent si vous modifiez l'ordre des tables dans la colonne SELECT . Dans la suite de test, il s'est vu des tests 15000 fois plus lent que MySQL. Ceci est dû au manque d'optimisateurs chez mSQL . Toutefois, si vous avez placé les tables dans le bon ordre avec mSQL 2 et que la clause WHERE est simple et utilise les index, la jointure peut être plutôt rapide. La suite de tests comparatifs de MySQL .
      les clauses ORDER BY et GROUP BY .
      la clause DISTINCT .
      l'utilisation des colonnes de type TEXT et BLOB .
    Support de SQL
      GROUP BY et HAVING . mSQL ne supporte pas du tout la clause GROUP BY . MySQL supporte totalement la clause GROUP BY avec les clauses HAVING et les fonctions suivantes : COUNT() , AVG() , MIN() , MAX() , SUM() et STD() . COUNT(*) est optimisée pour retourner très vite le résultat si SELECT lit les lignes dans une table, qu'aucune autre colonne n'est lue, et qu'il n'y a pas de clause WHERE . MIN() et MAX() accepte les chaînes de caractères comme arguments.
      Les INSERT et UPDATE avec calculs d'expression. MySQL peut faire des calculs d'expression dans les commandes INSERT et UPDATE . Par exemple :
      
      mysql> UPDATE SET x=x*10+y WHERE x<20;
      
      Aliasing. MySQL supporte les alias de colonne.
      Identification simple des colonnes. Avec MySQL, si un nom de colonne est unique dans les tables utilisées pour une jointure, vous n'avez pas à utiliser son identifiant total.
      SELECT avec des fonctions MySQL dispose de nombreuses fonctions (trop nombreuses à lister ici : voir Fonctions ).
    Efficacité d'utilisation de l'espace disque
    C'est à dire, comment pouvez-vous réduire la taille de vos tables ?MySQL a des types très précis, et vous pouvez créer des tables avec un très petit espace. Un exemple de type de données pratique est le type MEDIUMINT qui occupe 3 octets. Si vous avez 100 millions d'enregistrement, économiser un octet par enregistrement est très important.

    mSQL2 a un jeu de type de données plus limité, ses tables sont donc plus grosses.

    Stabilité
    Il est difficile de juger de cela objectivement. Pour un début sur la stabilité du serveur MySQL, voyez Degré de stabilité de MySQL .

    Nous n'avons aucune expérience avec la stabilité du code de mSQL , alors nous ne nous prononceront pas là-dessus.

    Prix
    Un autre point important est la licence. MySQL dispose d'une licence plus souple que mSQL , est il est aussi moins cher que mSQL . Quelque soit le produit que vous utilisez, n'oubliez pas de prendre un contrat de support par email ou une licence commerciale.
    interface Perl
    MySQL a la même interface avec Perl que mSQL , avec des fonctionnalités supplémentaires.
    JDBC (Java)
    MySQL supporte de nombreux pilotes JDBC :
      le pilote mm : un pilote JDBC de type 4, écrit par Mark Matthews mmatthew@ecn.purdue.edu . Il est publié sous licence LGPL.
      Le pilote Resin : un pilote JDBC commercial et Open Source. http://www.caucho.com/projects/jdbc-mysql/index.xtp
      Le pilote gwe : une interface Java par GWE technologies (non supporté).
      Le pilote jms : un pilote gwe amélioré par Xiaokun Kelvin ZHU X.Zhu@brad.ac.uk (non supporté).
      Le pilote twz : un pilote JDBC de type 4, écrit par Terrence W. Zellers zellert@voicenet.com . Il est commercialisé, mais gratuit pour les utilisations personnelles et éducationnelles (non supporté).
    Le pilote recommandé est le pilote mm. Le pilote Resin est aussi bon (les tests sont bons) mais nous n'avons pas reçu beaucoup d'informations à son propos.Nous savons que mSQL a un pilote JDBC, mais nous n'avons pas l'expérience pour le comparer.
    Vitesse de développement
    MySQL a une petite équipe de développeur, mais nous sommes très habitués à coder en C et C++, très rapidement. Comme les threads, les fonctions, GROUP BY et de nombreuses autres fonctionnalités ne sont pas encore codées pour mSQL , il y a beaucoup faire pour nous rattraper. Pour mesurer cela, vous pouvez consulter le fichier d'historique de mSQL HISTORY pour l'an dernier, et le comparer avec la section news du manuel de référence MySQL ( Historique des versions de MySQL ). Il est alors assez évident de voir qui se développe plus vite.
    Programmes utilitaires
    Les deux projets mSQL et MySQL ont des contributions de tiers très intéressantes. Comme il est plus facile de porter vers les versions plus récentes (depuis mSQL vers MySQL), presque toutes les applications intéressantes de mSQL sont disponibles pour MySQL.

    MySQL est livré avec un programme simple msql2mysql qui corrige les différences de syntaxe entre mSQL et MySQL pour la plupart des fonctions de l'API C. Par exemple, il modifie les occurrences de msqlConnect() en mysql_connect() . Convertir un programme client de mSQL vers MySQL requiert un effort minimal.

Sommaire :

<< MySQL face à mSQL >>
Informations générales Comparatif de MySQL avec les autres serveurs SQL Comparatif de MySQL avec PostgreSQL
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -