为多循环sql选择哪个性能



我有一个帐户列表,在其中我循环并逐个搜索:

for (Account acc: accs) {
// select table where accid, accname, status, etc... match per sql request
}

我正在考虑使用sql IN:

for (Account acc: accs) {
// join all accid, accname, status, etc in string seperate by comma,
// example: 1,2,3,4 for accname, 'alvin', 'john' for accname
}
// then select using IN
// example: SELECT * FROM Tx WHERE acccId IN (1,2,3,4) AND accName IN ('alvin', 'john)

你认为对于超过100个accId或name,使用IN性能会更好吗?

我认为方法1更灵活,因为条件可以复杂的

使用IN运行一个查询将比运行100个单独的查询快得多。

运行单独的查询会有开销——只需将查询转换为执行计划并将数据库传递出去。一般来说,最好在数据库中做得更多,在应用程序中做得更少。

最新更新