问题一:如果执行 select from data 会走列存索引,那么 insert into data2 select from data 里面的查询会走列存索引吗?
问题二:如果本来 select from data 是很简单的查询,走的是行存索引,那么如文章所示在开启ETL功能后 insert into data2 select from data 里面的本来走行存索引的简单查询会一定发送到列存节点吗?
问题三:接着上面的问题,当开启ETL功能后本来走行存索引的简单查询发送到列存节点后,PolarDB列存节点仍会根据cost进行分流最后走行存索引吗?
以下为热心网友提供的参考意见
对于这个问题,从一般情况来看,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 针对问题二的回答:是的,这时没有根据cost进行行列分流。 针对问题三的回答:会的。此回答整理自钉群“PolarDB专家面对面 – HTAP(列存索引)”
本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/20482.html