sql 性能调优

sql 复制代码
SELECT * FROM  warn_data where TO_CHAR(start_time, 'YYYY-MM-DD HH24:MI') >= #{startTime} 

这种写法, 对数据库字段使用了 to_char函数, 当表数据巨大的时候,性能慢 怎么优化?

优化使用 TO_CHAR 函数的 SQL 查询性能

当数据库表数据量巨大时,在 WHERE 子句中对字段使用 TO_CHAR 函数会导致性能问题,因为:

1.数据库无法使用该字段上的索引

2.需要对每一行数据都应用函数转换

优化方案

方案1:使用原生日期比较 (​​避免在 WHERE 子句中对列使用函数​​ - 这会阻止索引使用, 将参数转换为日期类型​​而不是将列转换为字符串)

sql 复制代码
SELECT * FROM warn_data 
WHERE start_time >= TO_TIMESTAMP(#{startTime}, 'YYYY-MM-DD HH24:MI')
相关推荐
2603_969694857 分钟前
【MySQL学习笔记】DQL(基础查询/条件/聚合/分组/排序/分页)与 DCL(用户权限)全解析
数据库·笔记·学习·mysql·学习方法
Paper数据分析-经管学术13 分钟前
1985-2025年地级市绿色发明专利被引量
数据库
念何架构之路23 分钟前
Go 标准库 database/sql 详解
数据库·sql·golang
云边有个稻草人25 分钟前
MongoDB迁移不止是数据搬家:用KingbaseES重构文档数据开发
数据库·mongodb·重构·国产数据库·信创数据库·数据库国产化·mongodb迁移
MaAidan30 分钟前
让 Agent 接上 YApi、Yuque、数据库、Redis 和日志:我的 MCP 资源绑定设计
数据库·redis·缓存
pikapika~~~35 分钟前
Mysql+Redis八股
数据库·redis·mysql
ShineWinsu37 分钟前
对于Qt:QLCDNumber常见属性以及QTimer的解析
服务器·数据库·c++·qt·gui·qtimer·qlcdnumber
captain3769 小时前
MyBatis(入门5)其他查询操作
java·数据库·spring boot·mybatis
小此方10 小时前
Re:Mysql数据库基础篇(八):详细讲解复合查询、多表查询、自连接、多行、多列子查询与合并查询
数据库·mysql
xszivvvv10 小时前
Mariadb数据库frm文件异常,如何恢复数据
数据库·mariadb