使用BETWEEN子句或使用<= AND> =比较之间在性能上有区别吗?
即这两个查询:
SELECT * FROM table WHERE year BETWEEN '2005' AND '2010';
…和
SELECT * FROM table WHERE year >= '2005' AND year <= '2010';
在此示例中,year列是带有索引的VARCHAR2(4)。
这两个示例查询之间没有性能差异,因为BETWEEN这只是表示 包含 范围比较的一种简便方法。Oracle解析BETWEEN条件时,它将自动扩展为单独的比较子句:
BETWEEN
前任。
SELECT * FROM table WHERE column BETWEEN :lower_bound AND :upper_bound
…将自动变为:
SELECT * FROM table WHERE :lower_bound <= column AND :upper_bound >= column