开发者社区> 问答> 正文

请教OceanBase数据库各位,如果不用max(id),查询数据就走索引吗?

请教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),查询数据就走索引?

展开
收起
真的很搞笑 2023-12-05 21:40:53 91 0
来自:OceanBase
3 条回答
写回答
取消 提交回答
  • max是返回指定数据中的最大值。应该走了全表扫描了
    https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000222283 ,此回答整理自钉群“[社区]技术答疑群OceanBase”

    2023-12-06 14:37:45
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,如果不使用max(id),查询数据走索引。因为在这个SQL语句中,b='10223'create_date <= str_to_date('2023-05-10 00:00:00','%Y-%m-%d %H:%i:%s')这两个条件都是用于过滤数据的,而id是主键,所以数据库会利用这个主键进行索引查找,从而减少全表扫描的次数。

    2023-12-06 13:40:53
    赞同 展开评论 打赏
  • 是的,如果不用max(id),查询数据就走索引。

    MAX() 的取值可以是一个字符串参数https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000222315

    2023-12-06 11:40:42
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载