【发布时间】:2014-10-09 23:42:08
【问题描述】:
假设我正在 MySQL 中创建一个表:
CREATE TABLE animals (
id INT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
主键应该是简单的INT 还是应该设置为UNSIGNED INT?我知道负主键没有多大意义,所以我认为应该是UNSIGNED INT。虽然哪一个会更快?
【问题讨论】:
-
为什么不呢?如果它是唯一的,那没关系
-
@Leo 我只是在学习。如果您说没关系,那么我将继续使用 UNSIGNED INT。 :)
-
unsigned 会给你更大的范围。性能我不知道,但我想这两个选项都差不多
-
使用 unsigned 的唯一问题往往发生在您忘记在其他地方使用(或无法使用)时——您可能会被截断或一些奇怪的浮点转换或谁知道。我想,任何选择都是如此——如果你把它放在错误的变量中,事情就会爆炸。
-
@bodacydo 对于
name字段使用Varchar比使用char 更好。