Database 在群集环境中读取数据库表的最快方法

Database 在群集环境中读取数据库表的最快方法,database,multithreading,performance,jboss,cluster-computing,Database,Multithreading,Performance,Jboss,Cluster Computing,在集群环境中,从非常大的数据库表读取数据的最佳方法是什么 假设我们需要尽可能快地读取巨大的DB表,然后将这些数据发送到jms队列。我们希望避免读取相同的数据,因为它需要处理,所以最好没有交叉点。而这个应用程序要部署在jboss集群中,所以节点应该知道如何通信 因此,在一个节点的情况下——非集群环境中,我可以让一个进程读取表。 在两个节点的情况下-这种读取应该如何协调,以避免两个节点读取相同的数据。。。三个节点等 不知道目标环境中会有多少节点,节点可以使用db表或jboss缓存进行通信 所以很明显

在集群环境中,从非常大的数据库表读取数据的最佳方法是什么

假设我们需要尽可能快地读取巨大的DB表,然后将这些数据发送到jms队列。我们希望避免读取相同的数据,因为它需要处理,所以最好没有交叉点。而这个应用程序要部署在jboss集群中,所以节点应该知道如何通信

因此,在一个节点的情况下——非集群环境中,我可以让一个进程读取表。 在两个节点的情况下-这种读取应该如何协调,以避免两个节点读取相同的数据。。。三个节点等

不知道目标环境中会有多少节点,节点可以使用db表或jboss缓存进行通信

所以很明显,每个进程读入块或页将提供最大的性能

在简单的java多线程环境中,这将是一项简单的任务,因为我们知道有多少线程将被读取,并且很容易计算如何划分页面并将页面的读取分配给单个线程


但在未知节点数量的情况下,节点之间应该有一些协议来进行通信和优化读取。

由于您必须保持巨大的数据库数据分布,我建议您查看某种分布式哈希表。我在一个具有相同要求的企业项目中使用了它,它已经得到了很好的验证。但是你总是有一个最大DB连接的限制,所以你不能无限增长