【问题标题】:DB Update Query Performance数据库更新查询性能
【发布时间】:2020-03-24 18:02:13
【问题描述】:

我有数据库更新查询,我想将offer_end_dt 更新到特定日期

UPDATE offer SET offer_end_dt = '2020-10-30 00:00:00',
                 last_update_user_nm = 'testUser',
                 last_update_tmst = now()
        WHERE offer_end_dt LIKE '2020-05-31%'; 

在上面的查询中,我使用了LIKE,因为我不确定时间。

我在记录较少的测试数据库上运行此查询,但现在我想在我们有近十万条记录的生产数据库上运行此查询。

有没有办法提高这个查询的性能?我可以在这里使用 USE INDEX 吗?怎么样?

我正在使用 MariaDb。

【问题讨论】:

    标签: sql date sql-update mariadb where-clause


    【解决方案1】:

    假设offer_enddatetime(应该是),您应该进行日期比较:

    WHERE offer_end_dt >= '2020-05-31' and offer_end_dt < '2020-06-01'; 
    

    【讨论】:

      【解决方案2】:

      拥有INDEX(offer_end_dt) 并做

      WHERE offer_end_dt >= '2020-05-31'
        AND offer_end_dt  < '2020-05-31' + INTERVAL 1 DAY
      

      (使用这种模式,无需担心月末或年末,也无需担心闰年。)

      【讨论】:

        猜你喜欢
        • 2011-04-20
        • 2020-11-20
        • 1970-01-01
        • 2021-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多