【发布时间】:2019-03-08 11:57:56
【问题描述】:
我目前正在开发一个 java 应用程序,用于比较 2 个不同数据库中的表数据。
我正在使用连接池和线程池执行器服务。我使连接数和线程数可配置,因此试图找到所需的最佳连接数和最佳线程数。
我知道获得最佳数量的最佳方法是尝试不同的数字,但我的问题是我应该考虑哪些因素或如何计算所需的连接/线程数。
通常有 3000 个表要比较,表的列表/模式可预先提供,暂时假设每个表中的记录数为数百(因此我不需要多次查询表)。
目前,我的应用程序为每个表生成一个线程(来自线程池),并与 2 个不同的数据库建立 2 个不同的 db 连接(现在按顺序),一旦检索到数据,同一个线程就会调用一个方法来比较数据。
我有几个问题,说 N 是否。核心数,M 是最大数量。 dbs 可以使用的 db 连接数
- 如果我的线程数超过 N,这对我的用例有用吗?如果是,怎么做?
- 这里的限制因素是什么 - 核心数或没有。连接数?
- 线程数多于 M 有什么用?
【问题讨论】:
标签: java database multithreading