我正在计划一个拥有迷你会计科目表的数据库。我的帐户代码名称如下:
我正在考虑将帐户代码用作帐户数据库中的主键,这意味着它将成为事务表中的外键。该字段类似于MySql中的CHAR(20)。交易表每月将获得大约10,000个条目。
这个长期字符索引会如何影响性能?如果我也可以使用代理键,但我也不愿意。 (当然,我不太担心磁盘空间。)
答案 0 :(得分:-1)
从技术上讲,你的问题的答案是不会对性能产生巨大影响,但它会有一些,你需要在你的系统上测试它才能知道真正的影响。
但实际上,答案是:不要这样做。将这些代码存储在表中,为每个代码提供一个唯一的整数id(AUTO_INCREMENT
列),并将该整数作为外键。这是正确规范化的,使用的空间比每行中额外的CHAR(20)
少得多,并且会降低性能。