Il y a une énorme pénalité de performance à utiliser ENUM
pour des opérations telles que :
-
Interroger la liste des valeurs autorisées dans le
ENUM
, par exemple pour remplir un menu déroulant. Vous devez interroger le type de données à partir deINFORMATION_SCHEMA
, et analyse la liste à partir d'un champ BLOB renvoyé. -
Modifiez l'ensemble des valeurs autorisées. Il nécessite un
ALTER TABLE
instruction, qui verrouille la table et peut effectuer une restructuration.
Je ne suis pas fan du ENUM
de MySQL . Je préfère utiliser des tables de recherche. Voir aussi ma réponse à "Comment gérer les énumérations sans champs enum dans une base de données ?
"