【发布时间】:2012-09-14 19:54:16
【问题描述】:
在 int 列上搜索表比在字符串列(比如 varchar)上搜索要快是公认的。
但是,如果我有一个带有 Color 列的 Shirt 表,那么使用该表上的主键作为 Shirt 表上的外键创建一个 Color 表会更高效吗?在搜索绿色衬衫时,连接是否会否定将 Shirt 颜色列中的值设为 int 而不是字符串值(如“Green”)的性能优势?
【问题讨论】:
-
这是一个实际的性能问题吗?它看起来很像过早优化。听我说:复杂的数据库并不好玩。 除非你有充分的理由,否则不要让你的数据库变得更复杂。
-
@BrendanLong 这不是实际的性能问题,而是理论上的问题。至少在我的情况下是这样。但是,您的评论似乎与针对理论性能问题给出的所有标准化答案背道而驰。
-
规范化是这样做的正当理由,但你的问题是关于性能的,所以这就是我的评论。理论性能不值得担心。
标签: sql performance join foreign-keys varchar