我有一个人的数据库(总共<400),从另一个系统导入。 ID就像这样
_200802190302239ILXNSL
我查询并加入该字段上的其他表
因为我对MySQL数据类型和性能很懒惰而且无知,我只是将它设置为Text。
我应该使用哪种数据类型以及我应该在哪种数据类型上设置以获得最佳性能?
答案 0 :(得分:3)
varchar(或char,如果它们都具有相同的长度)。
答案 1 :(得分:1)
键入:如上所述,varchar或char(如果此ID的长度是固定的,则更好)
索引类型:可能是UNIQUE
(如果您没有多个具有相同ID的条目)
作为进一步的观察,我可能会犹豫(出于性能原因)将此字段用作自然主键,特别是如果它将被多个外键引用。我可能只是在这个非标准ID列上创建一个合成主键(例如AUTO_INCREMENT
列)和UNIQUE
索引。
另一方面,少了400行,它并不重要,反正它会快速吸烟,除非有大/大表参考这个人员表。
答案 2 :(得分:0)
将其设置为具有适当长度的VARCHAR;这样,您可以索引整个列,或将其用作主键或唯一索引组件。
如果你对性能真的很偏执并且你确定它不会包含任何非ascii字符,你可以将它设置为ascii字符集并通过不需要utf8的空间来保存几个字节(在诸如排序缓冲区和内存临时表)。
但是如果你的数据库中有400条记录,你几乎肯定不在乎。