Vertica创建中的索引

时间:2015-05-14 16:02:18

标签: vertica

我试图创建索引,但我发现错误:

SQL Error [2676] [0A000]:
[Vertica][VJDBC](2676) ERROR: Command CREATE INDEX is not supported   
[Vertica][VJDBC](2676) ERROR: Command CREATE INDEX is not supported
[Vertica][VJDBC](2676) ERROR: Command CREATE INDEX is not supported

是否可以在Vertica(版本7)中创建索引?

CREATE INDEX idx_name_table_lookup ON name_table (field 1, field 2);

3 个答案:

答案 0 :(得分:2)

我的建议是了解有关Vertica如何工作的更多信息。具体来说,我会阅读concepts guide。请务必阅读左侧导航器中的许多部分。

简短的回答是,Vertica中没有索引。相反,有一些投影,它们是数据的副本,这些数据经过排序,分段和编码,以便以最佳方式执行查询。

您甚至可能不需要创建其他投影。我不会假设(特别是作为Vertica的新手)您需要创建与您在其他DBMS中可能具有的索引匹配的投影。

我会创建表,用一组有代表性的数据填充它,编写一些你打算经常使用的查询...然后在综合模式下运行Vertica附带的Database Designer工具(随后你可以进行增量设计如果您添加新的查询模式或更改您使用表的方式)。我实际上倾向于在这里做更多的步骤,但如果你刚刚开始,请保持简单。

所以,要阅读的内容(所有在上面提到的概念指南中),没有特别的顺序:

  1. 预测
  2. 数据库设计器
  3. 专栏店与行商店
  4. Logical Vs Physical Schemas
  5. 您很可能想要了解如何加载数据,这也在概念指南中。

    祝你好运!

答案 1 :(得分:0)

不可能! Vertica中不允许使用索引!这会使Vertica变慢。

为什么要使用索引?

也许您需要主键或特定投影。

主键

alter table test add primary key (col1);

答案 2 :(得分:0)

投影基本上就像集群索引一样,它将执行与常规索引相同的工作。

通常,Vertica的目标是针对不同的用例而不是oracle数据库或mysql。它更适合大规模顺序读取,而不适用于小型搜索索引库访问。

Vertica用例更多地针对报告和DWH用例,因此规则的b树索引不太相关

谢谢