假设您的逻辑表是:
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
是整数的比较,而不是字符串的比较。 最佳答案
我知道这是一个老问题——但答案通常是否定的。产品所做的编码通常会使列缩小到比必须发生的连接更快的程度。