【问题标题】:In Vertica, should you factor out strings into their own logical tables?在 Vertica 中,您是否应该将字符串分解到它们自己的逻辑表中?
【发布时间】:2011-09-26 20:37:32
【问题描述】:

假设你的逻辑表是:

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 &lt;&gt; e2.university 是整数的比较而不是字符串的比较。

【问题讨论】:

  • 没有。指南说,只有在加载所有数据后,我才应该使用投影。

标签: database rdbms database-schema vertica


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2022-11-30
    • 2021-11-17
    • 1970-01-01
    • 2010-11-14
    相关资源
    最近更新 更多