假设您的逻辑表是:

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

最佳答案

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

10-07 13:50