O padrão do meu servidor CHARSET
é UTF-8
(definido em my.cnf). Eu crio tabelas como
CREATE TABLE t1
(
ID int(11) unsigned NOT NULL AUTO_INCREMENT,
Title varchar(255),
PRIMARY KEY(ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci KEY_BLOCK_SIZE=2
mas algumas tabelas têm apenas int
colunas. É benéfico usar latin
charset para eles? Ou é melhor ter todas as tabelas com UTF-8
charset para consistência?
CREATE TABLE t2
(
ID int(11) unsigned NOT NULL,
TagID int(11) unsigned NOT NULL,
PRIMARY KEY(ID,TagID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci KEY_BLOCK_SIZE=1
vs.
CREATE TABLE t2
(
ID int(11) unsigned NOT NULL,
TagID int(11) unsigned NOT NULL,
PRIMARY KEY(ID,TagID)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE latin1_swedish_ci KEY_BLOCK_SIZE=1
O conjunto de caracteres e o agrupamento de uma tabela afetam as colunas recém-criadas nessa tabela. Também afeta colunas de caracteres/texto sem um conjunto/agrupamento de caracteres especificado.
Portanto, suas
int
únicas tabelas não têm nenhuma diferença específica por causa do conjunto de caracteres, até que você adicione uma coluna que a use.