:: DEVELOPER ZONE
La liste suivante décrit les caractéristiques principales du
logiciel de bases de données MySQL. Voyez la Section 1.5, « MySQL Plan de développement » pour plus
d'informations sur les fonctionnalités courantes et à venir.
Interne et portabilité
Ecrit en C et C++.
Testé sur un large éventail de compilateurs différents.
Fonctionne sur de nombreuses plates-formes. See Section 2.1.1, « Systèmes d'exploitation supportés par MySQL ».
Utilise GNU Automake, Autoconf et Libtool pour une meilleure portabilité.
Dispose d'API pour C, C++, Eiffel, Java, Perl, PHP, Python, Ruby et Tcl. See Chapitre 21, API MySQL.
Complètement multi-threadé, grâce aux threads du noyau. Cela signifie que vous pouvez l'utiliser facilement sur un serveur avec plusieurs processeurs.
Fournit des moteurs de tables transactionnels et non-transactionnels.
Index B-tree très rapide, avec compression d'index.
Facilité relative à ajouter un nouveau moteur de table. C'est utile si vous voulez ajouter une interface SQL à votre base de donnée maison.
Système l'allocation mémoire très rapide, exploitant les threads.
Jointures très rapides, exploitant un système de jointures multiples en une seule passe optimisé.
Tables en mémoire, pour réaliser des tables temporaires.
Les fonctions SQL sont implémentées grâce à une bibliothèque de classes optimisées, qui sont aussi rapides que possible! Généralement, il n'y a aucune allocation mémoire une fois que la requête a été initialisée.
Le code de MySQL est vérifié avec Purify (un utilitaire de
détection des fuites mémoires commercial) ainsi qu'avec Valgrind,
un outil GPL (http://developer.kde.org/~sewardj/).
Types de colonnes
Nombreux types de colonnes : entiers signés ou non, de 1, 2, 3, 4, et 8
octets, FLOAT, DOUBLE, CHAR, VARCHAR,
TEXT, BLOB, DATE, TIME, DATETIME,
TIMESTAMP, YEAR, SET et ENUM.
See Chapitre 12, Types de colonnes.
Enregistrements de taille fixe ou variable.
Toutes les colonnes ont des valeurs par défaut.
Vous pouvez utiliser la commande INSERT pour insérer un sous ensemble
de colonnes : les colonnes qui ne sont pas explicitement cités prennent
alors leur valeur par défaut.
Commandes et fonctions
Support complet des opérateurs et fonctions dans la commande SELECT
et la clause WHERE. Par exemple :
mysql> SELECT CONCAT(first_name, " ", last_name)
-> FROM tbl_name
-> WHERE income/dependents > 10000 AND age > 30;
Support complet des clauses SQL GROUP BY et
ORDER BY. Support des fonctions de groupages
(COUNT(), COUNT(DISTINCT ...),
AVG(), STD(),
SUM(), MAX() et MIN()).
Support des clauses LEFT OUTER JOIN et RIGHT OUTER JOIN avec les
syntaxes ANSI SQL et ODBC.
Les alias de tables et colonnes sont compatibles avec le standard SQL92.
DELETE, INSERT, REPLACE et UPDATE retourne
le nombre de lignes affectées. Il est possible d'obtenir le nombre de lignes
trouvées en modifiant une option lors de la connexion au serveur.
La commande spécifique à MySQL SHOW est utilisée pour obtenir
des informations sur les bases, tables et index. La commande EXPLAIN
sert à optimiser les requêtes.
Les noms de fonctions ne sont jamais en conflit avec les noms de tables ou colonnes.
Par exemple, ABS est un nom de colonne valide. La seule restriction est que,
lors d'un appel de fonction, aucun espace n'est toléré entre le nom de la fonction et
la parenthèse ouvrante '(' suivante. See Section 10.6, « Cas des mots réservés MySQL ».
Vous pouvez utiliser simultanément des tables de différentes bases (depuis la version 3.22).
Sécurité
Un système de droits et de mots de passe très souple et sécuritaire, qui vérifie aussi les hôtes se connectant. Les mots de passe sont bien protégés, car tout les échanges de mot de passe sont chiffrés, même lors des connexions.
Charges supportées et limites
Gère les très grandes bases de données. Nous utilisons le serveur MySQL
avec des bases qui contiennent 50 millions de lignes et nous connaissons des
utilisateurs qui utilisent le serveur MySQL avec plus de
60 000 tables et 5 000 000 000 (milliards) de lignes.
Jusqu'à 32 index sont permis par table. Chaque index est constitué de
1 à 16 colonnes ou parties de colonnes. La taille maximale d'un index est
de 500 octets (ce qui peut être configuré à la compilation du
serveur MySQL. Un index peut utiliser un préfixe issu d'un champs
CHAR ou VARCHAR.
Connexions
Les clients peuvent se connecter au serveur MySQL en utilisant les sockets
TCP/IP, les sockets Unix ou les pipes nommés sous NT.
Support de ODBC (Open-DataBase-Connectivity) pour Windows 32 bits
(avec les sources).
Toutes les fonctions ODBC 2.5 et de nombreuses autres. Par exemple, vous pouvez
utiliser MS Access pour vous connecter au serveur MySQL. See Section 22.1.1.1, « Qu'est-ce que ODBC? ».
L'interface Connector/JDBC fournit le support pour les clients Java qui utilisent
JDBC. Ces clients peuvent être utilisés sur Windows et Unix.
Les sources de Connector/JDBC sont libres.
See Section 22.2, « MySQL et Java (JDBC) ».
Traductions
Le serveur fournit des messages d'erreurs au client dans de nombreuses langues, y compris le fran¸ais. See Section 5.8.2, « Langue des messages d'erreurs ».
Support complet de plusieurs jeux de caractères, comprenant
ISO-8859-1 (Latin1), german, big5, ujis, etc. Par exemple,
les caractères nordiques 'Â', 'ä' et 'ö'
sont autorisés dans les noms de tables et colonnes.
Toutes les données sont sauvées dans le jeu de caractères choisi. Les comparaisons normales de chaînes sont insensibles à la casse.
Le tri est fait en fonction du jeu de caractères choisi (par défaut,
le jeu suédois). Il est possible de le changer lorsque le serveur MySQL
est démarré. Pour voir un exemple très avancé de tri, voyez le code
de tri pour le Tchèque. Le serveur MySQL supporte de nombreux jeux
de caractères qui peuvent être spécifié à la compilation et durant l'exécution.
Clients et utilitaires
Inclut myisamchk, un utilitaire rapide pour vérifier les tables,
les optimiser et les réparer. Toutes les fonctionnalités de myisamchk
sont aussi disponibles via l'interface SQL.
See Chapitre 5, Administration du serveur.
Tous les programmes MySQL peuvent être appelés avec l'option --help
ou -? pour obtenir de l'aide en ligne.
© 1995-2005 MySQL AB. All rights reserved.
