6.4 Manipulation de données : SELECT , INSERT , UPDATE , DELETE
6 Référence du langage MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Syntaxe de SELECT ->Syntaxe de HANDLER . Syntaxe de INSERT . Syntaxe de INSERT DELAYED . Syntaxe de UPDATE . Syntaxe de DELETE . Syntaxe de TRUNCATE . Syntaxe de REPLACE . Syntaxe de LOAD DATA INFILE . Syntaxe de DO
|
6.4.2 Syntaxe de HANDLER
HANDLER nom_de_table OPEN [ AS alias ] HANDLER nom_de_table READ nom_index { = | >= | <= | < } (value1,value2,...) [ WHERE ... ] [LIMIT ... ] HANDLER nom_de_table READ nom_index { FIRST | NEXT | PREV | LAST } [ WHERE ... ] [LIMIT ... ] HANDLER nom_de_table READ { FIRST | NEXT } [ WHERE ... ] [LIMIT ... ] HANDLER nom_de_table CLOSE
|
La commande
HANDLER
fournit un accès direct à l'interface de gestion de la table
MyISAM
.
La première forme de
HANDLER
ouvre la table, la rendant accessible via la requête
HANDLER ... READ
qui la suit.
Cette objet table n'est pas partagé par les autres threads et ne sera refermé que si le
thread appelle
HANDLER nom_de_table CLOSE
ou que celui ci se termine.
La seconde forme récupère une ligne (ou plus, à spécifier dans la clause
LIMIT
)
où l'index spécifié remplit les conditions et où la clause
WHERE
est répondue.
Si l'index se compose de plusieurs parties, (s'étend sur plusieurs colonnes) les valeurs sont
spécifiées dans une liste séparée par des virgules, fournir des valeurs pour quelques premières
colonnes est possible.
La troisième forme récupère une ligne (ou plus, à spécifier dans la clause
LIMIT
)
de la table dans l'ordre de l'index, qui répond à la clause
WHERE
.
La quatrième forme (sans spécifications relatives à l'index) récupère une ligne (ou plus, à
spécifier dans la clause
LIMIT
) de la table dans un ordre naturel des lignes (comme stocké
dans le fichier de données) qui correspond à la condition
WHERE
. C'est plus rapide que
HANDLER nom_de_table READ nom_index
quand une lecture entière de la table est requise.
HANDLER ... CLOSE
ferme une table qui a été ouverte avec
HANDLER ... OPEN
.
HANDLER
est en quelque sorte une commande bas-niveau. Par exemple, elle ne propose pas
de consistance. En clair,
HANDLER ... OPEN
ne se base
PAS
sur une image de la table, et ne verrouille
PAS
la table. Cela signifie qu'après
l'exécution d'une requête
HANDLER ... OPEN
, les données de la table peuvent être modifiées
(par ce ou un autre thread) et ces modifications peuvent apparaître partiellement dans les lectures
de
HANDLER ... NEXT
ou
HANDLER ... PREV
.
Les raisons d'utiliser cette interface plutôt que les commandes MySQL usuelles sont :
-
Plus rapide qu'un
SELECT
car :
-
Un pointeur sur table dédié est alloué au thread dans
HANDLER open
.
-
Il y'a moins de traitements.
-
Pas de pertes de temps en optimisation ou vérifications de requêtes.
-
La table utilisée n'a pas besoin d'être verrouillée entre deux requêtes de gestion.
-
L'interface de gestion n'a pas à fournir une vue consistante des données (par exemple, les lectures
corrompues sont autorisées), ce qui permet au gestionnaire d'effectuer des optimisations que SQL ne
permet pas.
-
Cela facilite le port des applications qui utilisent l'interface ISAM pour MySQL.
-
Cela permet de traverse plus facilement la base de données qu'avec SQL (dans certains cas, cette
opération est impossible avec SQL). L'interface de gestion amène une façon plus naturelle de manipuler
les données lorsque vous travaillez avec des applications qui proposent une interface interactive entre
l'utilisateur et la base de données.
|