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')
相关推荐
科技小花5 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸5 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain5 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希6 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神6 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员6 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java6 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿7 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴7 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存
YOU OU7 小时前
三大范式和E-R图
数据库