我遇到了一个文章,它声明这个查询:
SELECT * FROM TABLE WHERE COLUMN > 16比
SELECT * FROM TABLE WHERE COLUMN >= 17原因是
查询没有被优化,因为DBMS必须查找值16,然后向前扫描到值16。
第二个查询速度更快,因为
这样,DBMS就可以直接跳到值。
我很难相信主流的关系数据库管理系统(postgres、oracle、mysql/maria、DB2等)真的“愚蠢”--难道它们不聪明到可以自己优化这种差异吗?
有人能证实或否认大多数主流RDBMS的情况是(或者不是)吗?
发布于 2015-03-12 12:19:36
似乎在SQL-server中,>, >=, <, <=具有相同的性能。摘自这个文章。
以下是WHERE子句中使用的关键操作符,按其性能排序。那些在顶部的运营商将产生比那些在底部列出的更快的结果。
=
>, >=, <, <=
LIKE
<>https://stackoverflow.com/questions/29009368
复制相似问题