在PolarDB对于这样一个查询需求,在哪些列上建立列存索引是合理的呢?是在 device_id, phone, email 都建立吗,or 会不会导致列存索引失效?业务场景:
查询某些设备号、或手机号、或邮箱下支付成功的订单金额
select
ifnull(sum(amount), 0)
from
order
where
state = 2
and (
device_id in (
'device_id1', 'device_id2', 'device_id3'
)
or phone = 'phone1'
or email = 'email1'
)
;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
需要将sql涉及到的所有表都加上列索引,才会走列存执行 此回答整理自钉群“PolarDB专家面对面 - HTAP(列存索引) ”
阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。