Mysql
CHARSET 對只有 INT 的表很重要嗎?
我的伺服器預設
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=1
對比
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
表的字元集和排序規則會影響該表中新創建的列。它還影響沒有指定字元集/排序規則的字元/文本列。
因此
int
,由於字元集,您唯一的表沒有任何特定差異,直到您添加使用它的列。