为了优化给定的 SQL 查询,您可以考虑以下修改:

  1. 使用 EXPLAIN 语句分析查询执行计划,并识别任何潜在的性能问题。

  2. 在 tm_api_case 表的 enable 和 gmt_create 列上创建索引。这将提高 WHERE 条件的过滤过程。

    CREATE INDEX idx_enable_gmt_create ON tm_api_case (enable, gmt_create);
    
  3. 而不是使用 TIMESTAMPDIFF 函数,您可以在查询中直接计算日期阈值。这避免了对每一行调用函数的需要。

    SELECT id
    FROM tm_api_case
    WHERE enable = 0 AND gmt_create < DATE_SUB(NOW(), INTERVAL 30 DAY);
    
  4. 如果 tm_api_case 表具有大量的行,请考虑根据 gmt_create 列对表进行分区。这可以通过消除扫描整个表的需要来提高查询性能。

    ALTER TABLE tm_api_case
    PARTITION BY RANGE (TO_DAYS(gmt_create)) (
       PARTITION p1 VALUES LESS THAN (TO_DAYS(NOW()) - 30),
       PARTITION p2 VALUES LESS THAN MAXVALUE
    );
    

注意:这些优化的实际有效性可能因具体的数据库系统和表统计而异。建议在应用这些修改后测试和监控查询性能。

SQL 优化:提高 'tm_api_case' 表查询效率

原文地址: https://www.cveoy.top/t/topic/pahw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录