假设你的逻辑表是:
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
是整数而不是字符串的比较。
答案 0 :(得分:2)
我知道这是一个老问题 - 但答案通常是否定的。产品执行的编码通常会使列缩小到足以使其比必须发生的连接更快。