请教OceanBase数据库各位大佬,表 select max(id) from a where b='10223' and create_date <= str_to_date('2023-05-10 00:00:00','%Y-%m-%d %H:%i:%s')
id是主键;这个SQL,全表扫描;如果不用max(id),查询数据就走索引?
max是返回指定数据中的最大值。应该走了全表扫描了
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000222283 ,此回答整理自钉群“[社区]技术答疑群OceanBase”
是的,如果不使用max(id)
,查询数据走索引。因为在这个SQL语句中,b='10223'
和create_date <= str_to_date('2023-05-10 00:00:00','%Y-%m-%d %H:%i:%s')
这两个条件都是用于过滤数据的,而id
是主键,所以数据库会利用这个主键进行索引查找,从而减少全表扫描的次数。
是的,如果不用max(id),查询数据就走索引。
MAX() 的取值可以是一个字符串参数https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000222315
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。