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)

私が疑問に思っているのは、名前が「除外」されている2番目の論理スキーマは速度を向上させるかということです。おそらくe1.university <> e2.university、文字列ではなく整数の比較があるためです。

4

1 に答える 1

2

これが古い質問であることは承知していますが、通常は答えはノーです。製品が行うエンコーディングは、通常、実行する必要がある結合よりも高速になるように、列を十分に縮小します。

于 2012-04-07T15:15:34.907 に答える