我的服务器默认CHARSET是UTF-8 (设置在my.cnf中)。我创建了类似于
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但是有些表只有int列。对他们使用latin字符集有好处吗?或者,为了保持一致性,是否最好拥有所有具有UTF-8字符集的表?
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=1CREATE 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发布于 2021-02-04 02:20:10
表的字符集和排序规则影响该表中新创建的列。它还影响没有指定字符集/排序规则的char/text列。
因此,只有在添加了使用int的列之后,才会发现由于字符集的原因,仅使用它的表没有任何特定的区别。
https://dba.stackexchange.com/questions/284665
复制相似问题