java - 提高 MongoDB 查询性能

标签 java mongodb optimization mongodb-java

我有一个 4GB 的 mongodb 数据库,保存 ip 到地理数据。数据如下所示:

{ "_id" : ObjectId("51d1c15d3a673a1a57f20251"), "IP_FROM" : NumberLong(1168612352), "IP_TO" : NumberLong(1168612607), "COUNTRY_CODE" : "US", "COUNTRY_NAME" : "UNITED STATES", "REGION" : "MICHIGAN", "CITY" : "LANSING", "LATITUDE" : 42.73328, "LONGITUDE" : -84.637765 }

我有查询数据库的java代码:

BasicDBObject query = new BasicDBObject("IP_TO", new BasicDBObject("$gte", ipNum));

DBCursor cursor = ipCollection.find(query).limit(1);
    try {
        while (cursor.hasNext()) {
            DBObject next = cursor.next();
            latitude = (Double) next.get("LATITUDE");
            longitude = (Double) next.get("LONGITUDE");
            System.out.println("LATITUTDE: " +latitude+" LONGITUDE: "+ longitude);
            break;
        }
    } finally {
        cursor.close();
    }

当我运行 db.currentOp 时,我得到:

"query" : {
            "IP_TO" : {
                "$gte" : NumberLong(1625798904)
            }
        }

这太长了。有什么办法可以加快这个查询的速度吗?

最佳答案

IP_TO 和 IP_FROM 上的索引可以提供帮助

关于java - 提高 MongoDB 查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433070/

相关文章:

java - 从文本文件中列出客户的列表

java - JSF 以编程方式呈现响应

java - 从非 servlet 类(来自外部 jar)引用 WEB-INF 中的文件

Java:Apache commons-cli如何处理相互依赖的选项

mongodb - JEST 和 MongoDB 的异步问题

mysql - 将前n行的ID从一个表复制到另一个表

optimization - Tomcat Web 服务器的最佳设置是什么?

javascript - "user validation failed: passsword: Path ` 密码 ` is required."

Windows:应用程序无法正常启动(0xc000007b)

java - 需要优化帮助 - 在 java 中生成幻方