在Vertica中,您应该将字符串分解为自己的逻辑表吗?

时间:2011-09-26 20:37:32

标签: database rdbms database-schema vertica

假设你的逻辑表是:

CREATE TABLE employee(
  name VARCHAR,
  university VARCHAR
);

现在你只有几所大学。因此,您可以分解大学名称:

CREATE TABLE employee(
  name VARCHAR,
  university integer references university(university)
);

CREATE TABLE university(
  university identity,
  name varchar
);

您有类别的查询:

SELECT employee 
FROM employee as e1 
WHERE EXISTS 
      (SELECT employee 
       FROM employee as e2 
       WHERE e1.name = e2.name AND e1.university <> e2.university)

我想知道的是:第二个逻辑架构,名称是“因素”,加速了事情吗?也许是因为那里,e1.university <> e2.university是整数而不是字符串的比较。

1 个答案:

答案 0 :(得分:2)

我知道这是一个老问题 - 但答案通常是否定的。产品执行的编码通常会使列缩小到足以使其比必须发生的连接更快。