今天我听说有一个查询<>
比 not in
执行需要更多的时间。
我尝试对此进行测试,并采用相同的计划得到以下时间结果:
select * from test_table where test <> 'test'
0,063 seconds
select * from test_table where test not in ('test')
0,073 seconds
所以问题是,<>
之间有什么区别?和not in
对于单一条件以及使用什么更好。
最佳答案
无论列是否被索引,我都希望两个查询都能对表执行完整扫描,即查询计划本质上是相同的。您注意到的微小时间差异可能微不足道 - 多次运行相同查询,您将得到不同的时间。
话虽如此,我会使用 <>
因为它更自然。
关于Oracle !=(<>) 和 not in 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32249376/