ORMLite提高了选择性能

时间:2016-09-29 08:10:51

标签: sql orm h2 ormlite

我在Java服务器上使用ORMlite和H2数据库。我有一个450k行的数据集。我有以下分布:

  • 从0到300k:每第300行的状态为1

  • 从300k到420k:每50行的状态为1

  • 从420k到450k:每4个状态为1

其他行的状态为2.因此,总共约10900行的状态为1,其他行的状态为2。 请注意分发是近似的,因此SQL查询不能依赖上面的数字。

然后我需要选择最后8k行,它没有状态2.我尝试了以下内容:

  1. 首先按时间顺序创建行,然后使用限制函数查询8k行:

        SELECT * FROM `table_name` WHERE `Status` <> 2 LIMIT 0,100000
        queryBuilder.orderBy('time_saved', false);
        queryBuilder.limit(8000L);
    
  2. 此解决方案的问题是,检索所有元素需要很长时间:大约6秒。大部分时间都采用此顺序功能:所有处理约2秒,订购约4秒。

    1. 查询所有元素,但随后修剪生成的数组。这个解决方案的性能对我来说非常好。
    2. 所以我想知道,是否有其他解决方案,可以更好地解决这个问题。我知道我可以设置QueryBuilder的偏移量来提高性能,但我不知道这个偏移的起始编号。

      提前谢谢。

      P.S。不幸的是,我对ORMLite没有多少经验,所以任何支持链接都将受到赞赏。谢谢。

0 个答案:

没有答案
相关问题