GjenFly 2024-01-11 12:41 采纳率: 67.9%
浏览 7
已结题

oracle中有个表由a字段,time字段等组成,数据量有两千万,我做字段a的去重查询要30多秒

我原本的sql是select distinct a from log;
我开始单独对a字段做一个索引,发现时间还是30多秒。后面我建了个字段a+字段time的联合索引,然后sql改成select distinct a from log where time>to_date('2012-01-01','年-MM-DD') and time <to_date('2024-01-01','年-MM-DD') ;
居然能把时间降到了4秒,这是为啥呢?按照我的理解,做了a+time的联合索引,按照最左匹配原则,其实也是要全表扫描呀?为啥就可以快很多了?

  • 写回答

4条回答 默认 最新

  • CSDN专家-sinJack 2024-01-11 12:55
    关注

    因为字段a包含在查询字段中,所以组合索引是有效的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月20日
  • 已采纳回答 3月12日
  • 创建了问题 1月11日

悬赏问题

  • ¥15 excel中的填充效果 对应poi的哪个对象啊
  • ¥20 急需求一个 手机抓包app支付链接脚本
  • ¥15 byte[]转String后值为[object Object]
  • ¥20 STM32 AD7734
  • ¥15 mmrotate官方的test工具死循环
  • ¥15 isolar-AB软件安装后打开出错
  • ¥15 如何让usb软件在电脑拔插无记录
  • ¥15 ecology9的待办推送外部系统
  • ¥15 Mplus跑出来的数据只有原数据的一半
  • ¥15 vue项目添加全局处理解决一些开发问题