2011-08-23 107 views
1

我有一个人的分贝(总数为<),从另一个系统导入。这些ID都是这样Mysql:这个非标准ID字段的最佳类型

_200802190302239ILXNSL

我做的查询,并加入到该领域

因为我懒惰和无知关于MySQL的数据类型和性能的其他表,我只是将它设置为文本。

我应该使用什么样的数据类型以及为了获得最佳性能而应该设置哪种类型的索引?

回答

1

类型:作为所述,VARCHAR或炭(方式更好,如果该ID的长度是固定的)。
索引类型:一UNIQUE可能(如果你不会有相同的ID多个条目)

作为进一步的观察,我可能会犹豫(由于性能原因)使用该字段作为一个自然的主键,特别是如果它将被多个外键引用。我可能只是在这个非标准ID列上创建一个合成主键(例如一个AUTO_INCREMENT列)和一个UNIQUE索引。另一方面,如果行数少于400行,它并不重要,反正它会很快吸烟,除非有大/大表引用这个人表。

0

将其设置为具有适当长度的VARCHAR;这样,您可以索引整个列,或将其用作主键或唯一索引组件。

如果你真的对性能偏执狂,你确定它不会包含任何非ascii字符,你可以将它设置为ascii字符集,并节省几个字节,因为不需要utf8的空间(在这样的事情作为排序缓冲区和内存临时表)。

但是如果你的数据库中有400条记录,你几乎肯定不会在意。