zoukankan      html  css  js  c++  java
  • sql语句查询条件的不同表达方式对查询性能的影响

    今天操作数据库遇到一个问题

    目标表RA_AD_DAILY_DATA的数据量大概有5千万左右,其中的BUSINESS_DATE字段为日期类型

    我要查询8月20号导入的三条记录,刚开始用这种方式去查:

    SELECT * FROM RA_AD_DAILY_DATA WHERE  to_char(BUSINESS_DATE,'yyyy-MM-dd')= '2014-08-20' ;

    速度非常慢,五分钟左右才能出来结果(在PL/SQL developer中)

    同样都是查询2014年8月20日的数据,换一种表达的方式

    SELECT * FROM RA_AD_DAILY_DATA WHERE  BUSINESS_DATE= to_date('2014-08-20','yyyy-MM-dd') ;

    只用了0.3秒就查询出来了

    第一种方式要把所有的数据库里边的BUSINESS_DATE字段都变成字符串类型然后再进行比较,因为数据库的数据量非常大,所以是不可取的

    更重要的原因是把日期转换成字符串之后,在日期之上建立的索引就失效了。。。。

  • 相关阅读:
    pat00-自测5. Shuffling Machine (20)
    Spiral Matrix
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Best Time to Buy and Sell Stock II
    4Sum
    3Sum Closest
    3Sum
    MySQL存储过程、函数和游标
    Word Ladder
  • 原文地址:https://www.cnblogs.com/jiaoyiping/p/3928472.html
Copyright © 2011-2022 走看看