java - 循环内的数据库调用有其他选择吗?

标签 java database performance for-loop

由于 for 循环内有数千个数据库调用,我面临着性能问题。 有什么出路吗?

for( String cacheKey : moduleCacheMap.keySet() )
    {
        if( inputCachekey != null && inputCachekey.equalsIgnoreCase( cacheKey ) )
        {
            CacheItemDto cacheItemDto = moduleCacheMap.get( cacheKey ) ;
            cacheList = cacheDao.getCacheList( cacheItemDto ) ;
        }
    }

这里 cacheDao.getCacheList 每次都会触发一个新的数据库事务。

最佳答案

1) 在单个查询中获取所有需要的行而不是循环,或者

2)如果不需要立即使用所有数据,请制作一个延迟加载的cacheList。

关于java - 循环内的数据库调用有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374880/

相关文章:

mysql - 如何将 DECIMAL 插入 MySQL 数据库

mysql - 从数据库读取值并显示的最佳方法是什么?

java - 为什么 java.util.Arraylist#clear 是按照它在 OpenJDK 中的方式实现的?

java - ZK Web 应用的 Tomcat 版本升级

java - Kindle 中的技术和标准

database - 如何在 Go 中的包之间共享数据库连接?

计数位设置到 32 位类型的给定位置

具有多个客户端的 Java Socket 编程

java - 系统升级后jvm崩溃

sql - 一定数量的记录后,Postgres 服务器性能下降