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')
相关推荐
云小逸17 小时前
【nmap源码学习】 Nmap网络扫描工具深度解析:从基础参数到核心扫描逻辑
网络·数据库·学习
肉包_51117 小时前
两个数据库互锁,用全局变量互锁会偶发软件卡死
开发语言·数据库·c++
霖霖总总17 小时前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql
此刻你18 小时前
常用的 SQL 语句
数据库·sql·oracle
それども19 小时前
分库分表的事务问题 - 怎么实现事务
java·数据库·mysql
·云扬·19 小时前
MySQL Binlog 配置指南与核心作用解析
数据库·mysql·adb
天空属于哈夫克319 小时前
Java 版:利用外部群 API 实现自动“技术开课”倒计时提醒
数据库·python·mysql
eWidget19 小时前
随机森林原理:集成学习思想 —— Java 实现多棵决策树投票机制
java·数据库·随机森林·集成学习·金仓数据库
Traced back20 小时前
SQL Server 核心语法+进阶知识点大全(小白版)
数据库·sqlserver
资深web全栈开发20 小时前
PostgreSQL枚举还是字符串:ENUM vs VARCHAR + CHECK 的权衡
数据库·postgresql