Vertica 创建中的索引

Index in Vertica creation

我正在尝试创建索引,但出现错误:

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);

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

为什么要使用索引?

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

主键

alter table test add primary key (col1);

我的建议是更多地了解 Vertica 的工作原理。具体来说,我会阅读 concepts guide。请务必通读左侧导航器中的许多部分。

简短的回答是,Vertica 中没有索引。取而代之的是预测,它们是经过排序、分段和编码的数据副本,可以最佳地执行您的查询。

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

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

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

  1. 预测
  2. 数据库设计器
  3. 列式存储与行式存储
  4. 逻辑模式与物理模式

您很可能想阅读有关如何加载数据的信息,这也在概念指南中。

祝你好运!

投影基本上就像聚类索引,它会做与常规索引相同的工作。

一般来说,Vertica 的目标用例不同于 Oracle 数据库或 mysql。它更适合大量顺序读取而不适合小型搜索索引基础访问。

Vertica 用例更针对报告和 DWH 用例,因此正则 B 树索引不太相关

谢谢