首页 > 解决方案 > 如何从 Java 应用程序测量 MongoDB 查询执行时间

问题描述

我正在编写一个小实用程序来对数据库进行基准测试。有一个小片段显示了我如何执行查询。(我正在为 MongoDB 使用 java 驱动程序):

        long startTime = System.currentTimeMillis();

        MongoIterable<Document> execResult = peopleCollection.aggregate(Collections.singletonList(group));
        MongoCursor<Document> cursor = execResult.cursor();

        while(cursor.hasNext()) {
            cursor.next();
        }

        long endTime = System.currentTimeMillis();

我想正确测量时间以便进行可靠的测试。当我删除while循环时,时间更短,但它只返回第一批结果。查询是否完全执行并且服务器分批返回结果,还是在获取下一批时再次执行?

在我看来,这两种方法都有点不可靠,我找不到任何关于如何从 Java 应用程序测量时间的信息。

我无法使用 .explain() 或服务器日志记录来提取时间,我需要从 Java 应用程序中提取时间。我在堆栈中搜索答案,但没有找到。

提前感谢您的任何帮助!

标签: javamongodbexecution-time

解决方案


推荐阅读