存储缩写或完整标签?

时间:2014-06-22 09:13:23

标签: mysql sql

例如要存储Windows 8我有三个选项。

  1) WI8
  2) Windows 8
  3) Win 8

我不确定哪个最好。该列已编制索引,我在其上使用GROUP BY。作为输出结果,我需要Windows 8。这个表确实每秒获得许多INSERT。表现非常重要。

1 个答案:

答案 0 :(得分:0)

在关系数据库上下文中,有两种类型的主键:

  • natural key是由现实世界中已存在的属性组成的键:社会安全号码,邮政编码,全名......

  • surrogate key是一个不是从应用程序数据派生的唯一标识符:相关整数,UUID ......

自然键具有随时间变化的坏习惯,这增加了可怕的维护负担。而且,在你的情况下,你甚至没有一个明确的候选人,因为预期会有很多真实世界价值的别名。因此,在您描述的示例中没有理由使用自然键。

在MySQL中,AUTO_INCREMENT功能中生成代理键的标准方法。

(请注意,无论您打算做什么,这都是您必须熟悉的基本概念。批量插入中的性能问题是完全不同的故事,必须在不同级别进行处理。)