SQL语句中between跟>= <= 的性能差别

SQL语句中between和>= <= 的性能差别
系统中的数据由于时间长了积累到了一定程度,发现查询越来越慢,于是开始考虑优化,第一步检查SQL的过程中,发现使用了 ALARM_TIME >=? and ALARM_TIME <=? ,而且在去掉这个条件之后查询速度有明显改善,感觉十分不合理,于是换成between,发现查询速度快了非常多。

感觉不可思议,然后又把SQL拿到MSSQL的客户端去调试,发现在几十万数据的表中,不管是between还是>= <= 速度都是非常快的,也就是说在JDBC中两者有明显的性能差距,但是在MSSQL客户端中差距并不明显。

百思不得其解,后面从别的方面排查一下问题,会不会是数据库的问题呢?下一步将会从sqlserver和oracle着手。

另外发现一个问题,就是int 和varchar类型的查询效率也会有区别,当数据量增大的时候区别就开始明显地体现出来了,所以尽可能地用int
1 楼 bobboy007 16 分钟前  
建议看下索引原理,就明白了。