@Test
    void testLoadOrderAndIntKeyPerformance() {

//        final int iterations = 1_000_000;
        final int iterations = 10;

        LOGGER.info("info {}", basicLmdbDb3.getDbInfo());

        // Ensure entries come back in the right order
        final List<Tuple2<Integer, String>> ascendingData = IntStream
                .range(0, iterations)
                .boxed()
                .map(i -> Tuple.of(i, String.format("Val %010d", i)))
                .collect(Collectors.toList());

        assertThat(ascendingData)
                .hasSize(iterations);

        final List<Tuple2<Integer, String>> randomData = IntStream
                .range(Integer.MAX_VALUE - iterations, Integer.MAX_VALUE)
                .boxed()
                .map(i -> Tuple.of(i, String.format("Val %010d", i)))
                .collect(Collectors.toCollection(ArrayList::new));
        Collections.shuffle(randomData);

        assertThat(ascendingData)
                .hasSize(iterations);

        LOGGER.logDurationIfInfoEnabled(() -> {
            lmdbEnv.doWithWriteTxn(writeTxn -> {
                ascendingData.forEach(tuple -> {
                    basicLmdbDb3.put(writeTxn, tuple._1(), tuple._2(), false);
                });
            });
        }, "Ascending");

        LOGGER.logDurationIfInfoEnabled(() -> {
            lmdbEnv.doWithWriteTxn(writeTxn -> {
                randomData.forEach(tuple -> {
                    basicLmdbDb3.put(writeTxn, tuple._1(), tuple._2(), false);
                });
            });
        }, "Random");

        // If you want to use MDB_INTEGERKEY then you MUST set the byte buffer to nativeOrder before
        // writing/reading. See https://github.com/lmdbjava/lmdbjava/issues/51
        LOGGER.logDurationIfInfoEnabled(() -> {
            lmdbEnv.doWithWriteTxn(writeTxn -> {
                ascendingData.forEach(tuple -> {
                    basicLmdbDb4.put(writeTxn, tuple._1(), tuple._2(), false);
                });
            });
        }, "Ascending (INTEGER_KEY)");

        LOGGER.logDurationIfInfoEnabled(() -> {
            lmdbEnv.doWithWriteTxn(writeTxn -> {
                randomData.forEach(tuple -> {
                    basicLmdbDb4.put(writeTxn, tuple._1(), tuple._2(), false);
                });
            });
        }, "Random (INTEGER_KEY)");

        if (iterations < 50) {
            basicLmdbDb3.logDatabaseContents(LOGGER::info);
            basicLmdbDb3.logRawDatabaseContents(LOGGER::info);
            basicLmdbDb4.logDatabaseContents(LOGGER::info);
            basicLmdbDb4.logRawDatabaseContents(LOGGER::info);
        }
        LOGGER.info("entry count: " + basicLmdbDb3.getEntryCount());
        LOGGER.info("entry count: " + basicLmdbDb4.getEntryCount());
    }
This is more of a manual performance test for comparing the difference between
puts in integer order vs in random order. Also compares the impact of the INTEGER_KEY
dbi flag, which seems to slow things down a fair bit.
stroom-lmdb/src/test/java/stroom/lmdb/TestBasicLmdbDb.java