sql - SQL IN 是否比单独查找更有效?

标签 sql

例如在下面的查询中

SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen', 'Smith')

假设 LastName 已编入索引,单个查询是否比对 LastName 执行三个单独的查询更有效?

最佳答案

执行单个查询比运行多个查询来检索相同数量的数据更快,因为您节省了网络往返次数。根据我的经验,往返次数通常是多查询场景中性能的最大 killer 。

与具有三个条件的单个查询相比,像这样,

SELECT * FROM Persons
WHERE LastName='Hansen' OR LastName='Pettersen' OR LastName='Smith'

不同:大多数优化器发现它与 IN 查询相同,因此您的性能保持不变。

关于sql - SQL IN 是否比单独查找更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10848675/

相关文章:

mysql - 仅当值不存在时返回行

sql - 在 codeigniter SQL 上设置变量

sql - 获取定义相等时间段的记录的总和/平均值

mysql - 带排序的 SQL 查询

javascript - sql插入没有错误,但表没有数据

sql - 将值从行添加到列(运输成本)

mysql - 强制两个一对一表之间的唯一性

mysql - 函数 SUM 在 MYSQL 中没有按预期工作

mysql - ActiveRecord SQL 查询未被记录

使用分区依据的 SQL 查询