La liste suivante décrit les caractéristiques principales du
logiciel de bases de données MySQL
. Voyez la
Section 1.3, « Plan de développement de MySQL » 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 24, 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ée.
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 11, 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 9.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 25.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
Chapitre 25, Pilotes MySQL.
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.
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.