Я новичок в nodejs и mongodb. Чтобы проверить это, я захватил 2.500.000 твитов из #oscars. Сейчас я играю немного с данными, но найти запросы как один ниже, очень медленно ... (до 40 секунд) (я делаю запросы непосредственно на консоли)Очень медленная производительность на mongodb find
db.oscars.find({user.screen_name: "monxas"})
Am Я что-то делаю неправильно? Есть ли способ ускорить выполнение этих запросов?
твито имеет такую структуру, если это помогает:
{
"_id" : ObjectId("54ea1f0f5fbae7a02067024b"),
"created_at" : "Sun Feb 22 18:25:20 +0000 2015",
"id" : 5.6956360590721434E+17,
"id_str" : "569563605907214338",
"text" : "#Oscars2015 Who will win tonight? All hopes are on you guys.",
"source" : "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
"truncated" : false,
"in_reply_to_status_id" : null,
"in_reply_to_status_id_str" : null,
"in_reply_to_user_id" : null,
"in_reply_to_user_id_str" : null,
"in_reply_to_screen_name" : null,
"user" : {
"id" : 2596742425.0,
"id_str" : "2596742425",
"name" : "jclivesforever26",
"screen_name" : "jacuasay092600",
"location" : "",
"url" : null,
"description" : "Da Bulls!!! Ed Sheeran is life!!!",
"protected" : false,
"verified" : false,
"followers_count" : 21,
"friends_count" : 183,
"listed_count" : 0,
"favourites_count" : 78,
"statuses_count" : 283,
"created_at" : "Mon Jun 30 18:13:13 +0000 2014",
"utc_offset" : null,
"time_zone" : null,
"geo_enabled" : true,
"lang" : "en",
"contributors_enabled" : false,
"is_translator" : false,
"profile_background_color" : "C0DEED",
"profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
"profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
"profile_background_tile" : false,
"profile_link_color" : "0084B4",
"profile_sidebar_border_color" : "C0DEED",
"profile_sidebar_fill_color" : "DDEEF6",
"profile_text_color" : "333333",
"profile_use_background_image" : true,
"profile_image_url" : "http://pbs.twimg.com/profile_images/542805253952135168/Ttwm541P_normal.jpeg",
"profile_image_url_https" : "https://pbs.twimg.com/profile_images/542805253952135168/Ttwm541P_normal.jpeg",
"profile_banner_url" : "https://pbs.twimg.com/profile_banners/2596742425/1421468064",
"default_profile" : true,
"default_profile_image" : false,
"following" : null,
"follow_request_sent" : null,
"notifications" : null
},
"geo" : null,
"coordinates" : null,
"place" : null,
"contributors" : null,
"retweet_count" : 0,
"favorite_count" : 0,
"entities" : {
"hashtags" : [{
"text" : "Oscars2015",
"indices" : [0, 11]
}],
"trends" : [],
"urls" : [],
"user_mentions" : [],
"symbols" : []
},
"favorited" : false,
"retweeted" : false,
"possibly_sensitive" : false,
"filter_level" : "low",
"lang" : "en",
"timestamp_ms" : "1424629520285"
}
хорошо, что сделало его молниеносно! благодаря! просто один вопрос ... Сколько индексов у меня есть? есть ли разумный предел? – monxas
Это зависит от ряда факторов, но главным образом [селективности] (http://docs.mongodb.org/manual/tutorial/create-queries-that-ensure-selectivity/#index-selectivity), подбора индексов в ОЗУ, повторного использования индексы в нескольких запросах, когда это возможно, и создание индексов, которые могут поддерживать все поля в заданном запросе. Подробную документацию по выбору полей для индексирования см. В [документация по учебникам по индексированию] (http://goo.gl/N6xlkS). Другими полезными учебниками являются [Рекомендации по индексированию MongoDB] (http://goo.gl/um2DPi) и [MongoDB Indexing tip # 3] (http://goo.gl/cgLv0C), чтобы назвать несколько. – chridam