为啥 HAWQ 目前不支持非堆表的索引?

Posted

技术标签:

【中文标题】为啥 HAWQ 目前不支持非堆表的索引?【英文标题】:Why doesn't HAWQ support index for non-heap tables currently?为什么 HAWQ 目前不支持非堆表的索引? 【发布时间】:2016-12-28 07:50:31 【问题描述】:

不知道它在支持索引时会考虑哪些困难,比如索引存储、索引更新等等。

【问题讨论】:

【参考方案1】:

如果你说的是B+树索引,我认为原因是你不能在HDFS上实现它。对于 B+ 树,您必须经常更改它,但是在您关闭 HDFS 文件后,您将无法更新它。 HIVE 在 HDFS 上支持 B+ 树索引,但是性能很差,因为它会在插入/更新/删除任何行后重建整个索引。

【讨论】:

如果在本地文件系统上实现索引会怎样。 HAWQ 3.0 将支持非堆表的索引。 HAWQ-303. Hawq 不支持用户数据的 WAL 日志,如果你想在本地系统上存储索引,你应该实现 WAL 日志来维护索引。但这仍然不够,如果您的一个段已关闭,因为该表已复制到数据节点上,因此您仍然可以访问该表,但您已经丢失了索引。对于 HAWQ-303 票证,我认为他们不会在本地索引上实现索引。

以上是关于为啥 HAWQ 目前不支持非堆表的索引?的主要内容,如果未能解决你的问题,请参考以下文章

堆表 索引组织表

Pivotal HAWQ - Centos 7 安装

InnoDB到底支不支持哈希索引,为啥不同的人说的不一样?

PostgreSQL之堆表存储(Heap Table)

为啥OpenGL不支持多索引缓冲?

为啥目前的数据库查询优化技术不支持计算列的优化?