1

假设您的逻辑表是:

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是整数而不是字符串的比较。

4

1 回答 1

2

我知道这是一个老问题——但答案通常是否定的。产品所做的编码通常会缩小列,使其比必须发生的连接更快。

于 2012-04-07T15:15:34.907 回答