在WHERE条件中使用字母数字键连接表


Using alpha-numeric keys to JOIN tables and in WHERE conditions

这个数据库中很多表都有一个primary keyauto-increment numeric IDrecord_id surrogate unique hash fieldrecord_hash (alpha-numberic 16 chars)

我看到在很多地方,JOINSWHERE条件都写在record_hash上。我的问题是-这是慢然后record_id字段。

只有JOIN还是两个JOIN and WHERE有差异?

速度实际上是由查询和表上的索引决定的。如果在查询中使用的两个列上有相似的索引,那么性能将是相似的。唯一的小区别是数字id将更小,这将更快地读取和比较。

通常,在设计数据库时,您只需要一个惟一的id。记录散列只会增加不必要的开销。如果可能的话,我会坚持使用id