O que significa quando dizemos que an ENUM
tem um charset de utf8mb4
, versus latin1
?
Meu entendimento é que o ENUM
contém um índice numérico (1, 2, 3, 4...) que identifica qual dos ENUM
valores (abc, def, ghi, jkl...).
Se eu usar utf8mb4
para uma ENUM
coluna, a coluna está usando mais armazenamento do que usaria se eu usasse latin1
?
Nenhuma diferença.
ENUM
é armazenado como um número de 1 ou 2 bytes, onde 0 mapeia para o primeiro item da sua lista. Você lida com a coluna como uma string, mas o disco vê apenas um número.2 bytes é usado somente quando há mais de 255 opções. Há alguns que evitam completamente o uso do ENUM; há alguns que desaprovam mais do que algumas opções. Eu digo usar ENUM para uma pequena lista de opções, improvável de mudar.
Pode ser possível obter problemas de conjunto de caracteres ou agrupamento se você não for consistente no banco de dados e nas especificações de conexão.