【问题标题】:which performance for multiple loop sql select多循环 sql 选择的性能
【发布时间】:2021-09-27 13:49:45
【问题描述】:

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

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 更灵活,因为条件可以 复杂。

【问题讨论】:

    标签: java mysql sql


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 2021-09-22
      相关资源
      最近更新 更多