字符串列的oracle索引 - 数据格式是否会影响索引的质量?

时间:2011-01-01 02:50:38

标签: performance oracle oracle10g

对于数据库(Oracle)中的许多表,我们有以下类型的“唯一ID”列。它是一个格式如下的字符串

<randomnumber>-<ascendingnumber>-<machinename>

所以我们有这样的事情

U1234-12345-NBBJD
U1234-12346-NBBJD
U1234-12347-NBBJD
U1234-12348-NBBJD
U1234-12349-NBBJD

UID值是唯一的,我们有唯一的索引。对于索引扫描,以下格式是否比上述格式更有效?

NBBJD-U1234-12345
NBBJD-U1234-12346
NBBJD-U1234-12347
NBBJD-U1234-12348
NBBJD-U1234-12349

1 个答案:

答案 0 :(得分:2)

对此没有一个好的答案,因为它取决于你查询数据的方式。如果您通常尝试按UNIQUE_ID查找特定记录,则无关紧要。但是,如果您按machinename查找记录,那么您可能希望在列的前面找到它。

更好的是,将这些值中的每一个都设置为单独的列,并根据序列或GUID使用真正合成的主键。这样,数据的排序根本不是问题。你以后会感谢你自己。