Há uma enorme penalidade de desempenho para usar
ENUM
para operações como:-
Consulte a lista de valores permitidos noENUM
, por exemplo, para preencher um menu suspenso. Você precisa consultar o tipo de dados deINFORMATION_SCHEMA
e analise a lista de um campo BLOB retornado.
-
Altere o conjunto de valores permitidos. Requer umALTER TABLE
instrução, que bloqueia a tabela e pode fazer uma reestruturação.
Não sou fã do
ENUM
do MySQL . Eu prefiro usar tabelas de pesquisa. Veja também minha resposta para "Como lidar com enumerações sem campos de enumeração em um banco de dados?
"