具有数百万行的MongoDB

时间:2015-06-14 00:57:01

标签: mongodb

我有一个包含52M文档的MongoDB。我无法得到任何疑问。没有合适的索引,所以我认为这可能就是原因。但是,当我尝试构建索引时,似乎也失败了。我把它放了2个小时,当我回来时,数据库仍然被锁定。我不得不重启服务。

要查找的想法或事项?我认为使用Mongo我应该可以查询数百万行。

示例文档

{
    "_id" : ObjectId("54dfbcfe8b0de0cd148b4567"),
    "status" : "SUCCESS",
    "articles" : [ 
        {
            "sequenceId" : "423671544757",
            "id" : "20450468768",
            "language" : "Danish",
            "title" : "Se det spøjse billede: Bendtner og co. tvunget i midtergangen",
            "content" : "De er millionærer med dyre biler og sikkert også råd til en flybillet ved nødudgangen, men da Wolfsburg-spillerne skulle transporteres til lørdagens kamp mod Leverkusen skete det med tog til Köln. \n \nDet blev ikke en helt almindelig tur for Nicklas Bendtner og holdkammeraterne, for den togvogn, som Wolfsburg havde bestilt sine pladsbilletter til, kom aldrig frem. I stedet for vogn 858 kom vogn 848, og så var der ingen reserverede pladser til de dyre fodboldben. \n \nDerfor måtte blandt andre en af holdets største stjerner Kevin De Bruyne sætte sig i mellemgangen i toget, som du kan se på billedet her fra den noget alternative tur for Wolfsburg-holdet. \n \nDen anderledes togtur kom dog ikke til at få den store betydning for Wolfsburg, for der var masser af mål i holdet, da de slog Leverkusen 5-4 lørdag.",
            "tags" : [],
            "publishedDate" : "2015-02-14T21:17:00Z",
            "harvestDate" : "2015-02-14T21:22:45Z",
            "url" : "http://ct.moreover.com/?a=20450468768&p=20x&v=1&x=PMgZEU9pWnWzzrJkGesHeA",
            "outboundUrls" : [],
            "dataFormat" : "text",
            "loginStatus" : "",
            "duplicateGroupId" : "20450468768",
            "media" : {
                "audio" : [],
                "images" : [ 
                    {
                        "url" : "http://b.bimg.dk/node-images/301/8/140x80/8301685-fbl-ger-bundesliga-leverkusen-wolfsburg.jpg"
                    }
                ],
                "video" : []
            },
            "publishingPlatform" : [],
            "adultLanguage" : "false",
            "topics" : [],
            "companies" : [],
            "locations" : [],
            "semantics" : {
                "events" : [],
                "entities" : []
            },
            "author" : {
                "name" : "Michel Wikkelsø Davidsen",
                "publishingPlatform" : []
            },
            "licenses" : [],
            "source" : {
                "name" : "B.T. online",
                "homeUrl" : "http://www.bt.dk",
                "publisher" : "",
                "category" : "Trade",
                "editorialRank" : "3",
                "location" : {
                    "country" : "Denmark",
                    "countryCode" : "DK",
                    "region" : "Europe",
                    "subregion" : "Northern Europe",
                    "state" : "",
                    "zipArea" : "",
                    "zipCode" : ""
                },
                "feed" : {
                    "id" : "169662017",
                    "name" : "B.T. online",
                    "mediaType" : "News",
                    "tags" : [],
                    "language" : "Unassigned",
                    "dataFormat" : "text",
                    "rank" : {
                        "inboundLinkCount" : "8901"
                    },
                    "inWhiteList" : "true",
                    "autoTopics" : [],
                    "editorialTopics" : [ 
                        "Miscellaneous"
                    ],
                    "genre" : "General"
                }
            }
        }
    ]
}

1 个答案:

答案 0 :(得分:1)

索引可能需要很长时间,特别是如果您的服务器没有足够的计算能力。磁盘速度慢/不足,RAM不足,CPU都可以减慢索引创建速度。即使您在更好的服务器上运行,您选择索引的字段也会导致长时间运行。

我会避免使用多键索引,并尝试在后台运行索引。由于您没有提供样本文档,我无法详细说明。