Java 优化MySQL阅读模式

Java 优化MySQL阅读模式,java,mysql,algorithm,jdbc,Java,Mysql,Algorithm,Jdbc,我有一个带有过滤行ID的整数集合,我试图在其中搜索序列/范围以优化MySQL select查询。举个例子: 整数集合可以是非常零碎的: [1,2,88,101,200] = Sequence(1-2,88,101,200) 或者完全是: [1,2,3,4,..,198,199,200] = Sequence(1-200) 是否有任何Java算法可以在集合中查找序列或改进我的阅读模式?您的集合有多长?除非您有数百万个项目,否则将集合完全加载到内存中,对其进行排序,然后扫描范围可能是最快的 在排

我有一个带有过滤行ID的整数集合,我试图在其中搜索序列/范围以优化MySQL select查询。举个例子:

整数集合可以是非常零碎的:

[1,2,88,101,200] = Sequence(1-2,88,101,200)
或者完全是:

[1,2,3,4,..,198,199,200] = Sequence(1-200)

是否有任何Java算法可以在集合中查找序列或改进我的阅读模式?

您的集合有多长?除非您有数百万个项目,否则将集合完全加载到内存中,对其进行排序,然后扫描范围可能是最快的


在排序列表中,查找范围很简单。只需按顺序扫描;如果下一个元素不是上一个元素+1,则一个范围刚刚结束,另一个范围开始。

IMHO,您应该能够使用一两个循环来收集范围。我怀疑是否有任何库函数可以做到这一点。在“最坏”的情况下,该集合大约有100万个项目,因此在某些情况下只需要40-50个项目。问题是,这些40-50个项目可能不在一行中,这会导致大量单次MySQL查询=低性能。