如果执行 select from data 会走列存索引,那么 insert into data2 select from data 里面的查询会走列存索引吗?
对于这个问题,从一般情况来看,INSERT INTO data2 SELECT * FROM data
这样的查询不会走列存索引。因为这种查询语句是复制来源表的所有数据到目标表中,但并不会复制来源表的索引、约束以及触发器等信息。
然而,如果数据量超过100k条记录,那么这些数据进入Row Group时会进行列压缩;没有超过100k条记录的数据则进入Delta Store(Delta Row group)。此外,如果你想将数据加载到列存储索引进行分析,你可能需要使用标准的SQL大容量加载和渗透插入方法。
总的来说,是否走列存索引取决于你的具体需求和操作方式。如果你的目标是利用列存索引进行分析,那么你可能需要采取一些特定的策略或方法。
HBR混合云备份服务确实提供了将本地或云上资源备份到混合云备份的云上备份仓库的功能,并会按量计费。费用项目包括软件使用费、存储容量费、仓库租用费及流量费用等。此外,需要注意的是,如果您需要从备份数据中恢复数据,可能会产生数据恢复费用,该费用根据恢复数据的大小和恢复时间来计算。
对于您的问题一,执行select from data会走列存索引,那么insert into data2 select from data里面的查询也会走列存索引。因为HBR混合云备份服务支持多种场景的数据源备份,包括线下物理机、VMWare/Hyperv平台虚拟机、云上虚拟机备份、以及基于workflow的其他数据源备份等。所以无论是简单的查询还是复杂的查询,只要涉及到的数据存储类型支持列存索引,那么查询就会走列存索引。
对于您的问题二,当开启ETL功能后,本来走行存索引的简单查询发送到列存节点后,列存节点会根据查询的成本进行分流,最后可能会选择走行存索引。因为ETL功能可以提供强大的数据转换和加载能力,但同时也需要考虑数据的安全性和可用性,所以在实际操作中需要根据实际需求进行合理的备份策略设计。
对于您的问题三,同样是因为ETL功能的引入,可能会导致本来走行存索引的简单查询发送到列存节点后,列存节点仍会根据查询的成本进行分流,最后可能会选择走行存索引。这也是为了确保数据的安全性和可用性,避免因为索引选择不当导致的数据访问效率问题。
可以参考这个
https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/etl-from-imci?spm=a2c4g.11186623.0.0.61534e033Kwvbq
此回答整理自钉群“PolarDB专家面对面 - HTAP(列存索引)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。