MongoDB Слишком медленный поиск запроса по идентификатору, всего для 100000 элементов? - PullRequest
4 голосов
/ 24 сентября 2019

У меня есть коллекция из 100000 (999996) документов, и я использую Laravel для интеграции,

Когда я хочу найти документ по его идентификатору, ответ занимает слишком много времени.(что-то вроде> 80 мс)

Мне интересно, почему это займет слишком много времени только для 100k элементов?

и поле _id проиндексировано.

какие конфигурации я должен установитьдля повышения производительности.

Имейте в виду, у меня есть некоторые вложения в мой документ, встроенные по модели Laravel.

пример одного из документов:

{
    "_id": ObjectId("5d88a2857c254f0256737f43"),
    "name": "blcy",
    "coach": null,
    "line_up": 1,
    "sponsor_id": "5d131dd37c254f1d007d01f0",
    "last_online": ISODate("2019-09-23T10:46:29.000Z"),
    "stadium": 1,
    "active_stadium": 1,
    "doctor": 1,
    "active_doctor": 1,
    "trainer": 1,
    "coach_assistant": 1,
    "active_coach_assistant": 1,
    "fitness_coach": 1,
    "active_fitness_coach": 1,
    "leader": 1,
    "active_leader": 1,
    "executive_manager": 1,
    "active_executive_manager": 1,
    "strategy": 1,
    "attack_tactic": 1,
    "defence_tactic": 1,
    "ticket_price": 5,
    "user_id": "5d88a2847c254f0256737f42",
    "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
    "created_at": ISODate("2019-09-23T10:46:29.000Z"),
    "kit": {
        "bg_color": 10,
        "fg_color": 20,
        "fg": 1,
        "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
        "created_at": ISODate("2019-09-23T10:46:29.000Z"),
        "_id": ObjectId("5d88a2857c254f0256737f44")
    },
    "logo": {
        "bg_color": 10,
        "fg_color": 20,
        "fg": 1,
        "bg": 11,
        "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
        "created_at": ISODate("2019-09-23T10:46:29.000Z"),
        "_id": ObjectId("5d88a2857c254f0256737f45")
    },
    "players": [
        {
            "name": "بردیا رادمان",
            "player_number": 7,
            "age": 22,
            "post": "G",
            "talent": 2,
            "shoot": 6,
            "pass": 2,
            "speed": 5,
            "strength": 5,
            "readiness": 100,
            "technique": 6,
            "head": 6,
            "real_power": 83,
            "power": 30,
            "level": 2,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f46"),
            "in_lineup": true,
            "position": "G"
        },
        {
            "name": "سعید قاضی",
            "player_number": 1,
            "age": 19,
            "post": "G",
            "talent": 5,
            "shoot": 2,
            "pass": 2,
            "speed": 6,
            "strength": 5,
            "readiness": 100,
            "technique": 6,
            "head": 2,
            "real_power": 69,
            "power": 23,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f47")
        },
        {
            "name": "علیرضا چلبی",
            "player_number": 47,
            "age": 19,
            "post": "G",
            "talent": 4,
            "shoot": 4,
            "pass": 3,
            "speed": 4,
            "strength": 3,
            "readiness": 100,
            "technique": 4,
            "head": 3,
            "real_power": 60,
            "power": 21,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f48")
        },
        {
            "name": "آذین اوستا",
            "player_number": 52,
            "age": 25,
            "post": "G",
            "talent": 4,
            "shoot": 5,
            "pass": 6,
            "speed": 2,
            "strength": 6,
            "readiness": 100,
            "technique": 2,
            "head": 4,
            "real_power": 91,
            "power": 25,
            "level": 2,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f49")
        },
        {
            "name": "یاسین صفوی",
            "player_number": 28,
            "age": 20,
            "post": "D",
            "talent": 4,
            "shoot": 5,
            "pass": 4,
            "speed": 3,
            "strength": 4,
            "readiness": 100,
            "technique": 3,
            "head": 4,
            "real_power": 68,
            "power": 23,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f4a"),
            "in_lineup": true,
            "position": "D"
        },
        {
            "name": "خشایار نوبخت",
            "player_number": 36,
            "age": 17,
            "post": "D",
            "talent": 2,
            "shoot": 6,
            "pass": 5,
            "speed": 3,
            "strength": 5,
            "readiness": 100,
            "technique": 3,
            "head": 3,
            "real_power": 75,
            "power": 25,
            "level": 2,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f4b"),
            "in_lineup": true,
            "position": "D"
        },
        {
            "name": "شجاع سحاب",
            "player_number": 18,
            "age": 23,
            "post": "D",
            "talent": 3,
            "shoot": 4,
            "pass": 2,
            "speed": 2,
            "strength": 3,
            "readiness": 100,
            "technique": 5,
            "head": 4,
            "real_power": 53,
            "power": 20,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f4c"),
            "in_lineup": true,
            "position": "D"
        },
        {
            "name": "رها فهمیده",
            "player_number": 10,
            "age": 26,
            "post": "D",
            "talent": 3,
            "shoot": 5,
            "pass": 5,
            "speed": 3,
            "strength": 5,
            "readiness": 100,
            "technique": 5,
            "head": 3,
            "real_power": 76,
            "power": 26,
            "level": 2,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f4d"),
            "in_lineup": true,
            "position": "D"
        },
        {
            "name": "آذین عبدالکریمی",
            "player_number": 32,
            "age": 18,
            "post": "D",
            "talent": 2,
            "shoot": 6,
            "pass": 4,
            "speed": 2,
            "strength": 2,
            "readiness": 100,
            "technique": 6,
            "head": 5,
            "real_power": 59,
            "power": 25,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f4e"),
            "in_lineup": true,
            "position": "D"
        },
        {
            "name": "محمدرضا طالقانی",
            "player_number": 22,
            "age": 26,
            "post": "D",
            "talent": 5,
            "shoot": 3,
            "pass": 3,
            "speed": 3,
            "strength": 4,
            "readiness": 100,
            "technique": 6,
            "head": 2,
            "real_power": 60,
            "power": 21,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f4f")
        },
        {
            "name": "پارسا دستغیب",
            "player_number": 9,
            "age": 19,
            "post": "D",
            "talent": 1,
            "shoot": 6,
            "pass": 2,
            "speed": 4,
            "strength": 3,
            "readiness": 100,
            "technique": 6,
            "head": 2,
            "real_power": 58,
            "power": 23,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f50")
        },
        {
            "name": "فرشید پناهیان",
            "player_number": 33,
            "age": 26,
            "post": "M",
            "talent": 2,
            "shoot": 2,
            "pass": 6,
            "speed": 2,
            "strength": 4,
            "readiness": 100,
            "technique": 3,
            "head": 6,
            "real_power": 72,
            "power": 23,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f51"),
            "in_lineup": true,
            "position": "M"
        },
        {
            "name": "سپهر واعظ",
            "player_number": 8,
            "age": 26,
            "post": "M",
            "talent": 4,
            "shoot": 4,
            "pass": 3,
            "speed": 3,
            "strength": 2,
            "readiness": 100,
            "technique": 6,
            "head": 6,
            "real_power": 72,
            "power": 24,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f52"),
            "in_lineup": true,
            "position": "M"
        },
        {
            "name": "امیررضا کوشکی",
            "player_number": 3,
            "age": 26,
            "post": "M",
            "talent": 5,
            "shoot": 4,
            "pass": 2,
            "speed": 6,
            "strength": 3,
            "readiness": 100,
            "technique": 3,
            "head": 4,
            "real_power": 62,
            "power": 22,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f53"),
            "in_lineup": true,
            "position": "M"
        },
        {
            "name": "پدرام جنتی",
            "player_number": 29,
            "age": 24,
            "post": "M",
            "talent": 3,
            "shoot": 2,
            "pass": 4,
            "speed": 5,
            "strength": 4,
            "readiness": 100,
            "technique": 2,
            "head": 4,
            "real_power": 63,
            "power": 21,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f54")
        },
        {
            "name": "محمد علی‌آبادی",
            "player_number": 13,
            "age": 17,
            "post": "M",
            "talent": 1,
            "shoot": 2,
            "pass": 5,
            "speed": 3,
            "strength": 3,
            "readiness": 100,
            "technique": 4,
            "head": 4,
            "real_power": 68,
            "power": 21,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f55")
        },
        {
            "name": "سهیل فانی",
            "player_number": 19,
            "age": 25,
            "post": "M",
            "talent": 1,
            "shoot": 2,
            "pass": 3,
            "speed": 4,
            "strength": 4,
            "readiness": 100,
            "technique": 4,
            "head": 5,
            "real_power": 65,
            "power": 22,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f56")
        },
        {
            "name": "شهرام گنجی",
            "player_number": 24,
            "age": 17,
            "post": "S",
            "talent": 4,
            "shoot": 6,
            "pass": 3,
            "speed": 6,
            "strength": 2,
            "readiness": 100,
            "technique": 2,
            "head": 2,
            "real_power": 69,
            "power": 21,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f57"),
            "in_lineup": true,
            "position": "S"
        },
        {
            "name": "امیرمحمد سرافراز",
            "player_number": 2,
            "age": 21,
            "post": "S",
            "talent": 4,
            "shoot": 6,
            "pass": 2,
            "speed": 5,
            "strength": 4,
            "readiness": 100,
            "technique": 5,
            "head": 5,
            "real_power": 90,
            "power": 27,
            "level": 2,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f58"),
            "in_lineup": true,
            "position": "S"
        },
        {
            "name": "فربد ارسباران",
            "player_number": 20,
            "age": 25,
            "post": "S",
            "talent": 2,
            "shoot": 2,
            "pass": 2,
            "speed": 5,
            "strength": 3,
            "readiness": 100,
            "technique": 4,
            "head": 4,
            "real_power": 65,
            "power": 20,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f59")
        },
        {
            "name": "فرشید الهام",
            "player_number": 21,
            "age": 24,
            "post": "S",
            "talent": 2,
            "shoot": 4,
            "pass": 3,
            "speed": 6,
            "strength": 2,
            "readiness": 100,
            "technique": 3,
            "head": 6,
            "real_power": 78,
            "power": 24,
            "level": 2,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f5a")
        },
        {
            "name": "ساسان طریقت",
            "player_number": 35,
            "age": 17,
            "post": "S",
            "talent": 5,
            "shoot": 2,
            "pass": 5,
            "speed": 4,
            "strength": 2,
            "readiness": 100,
            "technique": 5,
            "head": 6,
            "real_power": 74,
            "power": 24,
            "level": 1,
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f5b")
        }
    ],
    "league_id": "5d88a2857c254f0256737f5d",
    "league_name": "league-0-1",
    "transactions": [
        {
            "amount": 120000,
            "type": "coin",
            "cash": 0,
            "coin": 120000,
            "description": "1",
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f5e")
        },
        {
            "amount": 100,
            "type": "cash",
            "cash": 100,
            "coin": 120000,
            "description": "1",
            "updated_at": ISODate("2019-09-23T10:46:29.000Z"),
            "created_at": ISODate("2019-09-23T10:46:29.000Z"),
            "_id": ObjectId("5d88a2857c254f0256737f5f")
        }
    ],
    "cash": 100,
    "coin": 120000,
    "fixtures": [
        {
            "league_name": "league-0-1",
            "home_id": "5d88a2857c254f025673800f",
            "guest_id": "5d88a2857c254f0256737f43",
            "week_day": 1,
            "weather_type": "sunny",
            "home_goal": 0,
            "guest_goal": 0,
            "friendly": false,
            "fixture_id": "5d89dff87c254f36ee3ae9ab",
            "updated_at": ISODate("2019-09-24T09:20:56.000Z"),
            "created_at": ISODate("2019-09-24T09:20:56.000Z"),
            "_id": ObjectId("5d89dff87c254f36ee3ae9ad")
        },
        {
            "league_name": "league-0-1",
            "home_id": "5d88a2857c254f0256737f61",
            "guest_id": "5d88a2857c254f0256737f43",
            "week_day": 2,
            "weather_type": "rainy",
            "home_goal": 0,
            "guest_goal": 0,
            "friendly": false,
            "fixture_id": "5d89dff87c254f36ee3ae9c0",
            "updated_at": ISODate("2019-09-24T09:20:56.000Z"),
            "created_at": ISODate("2019-09-24T09:20:56.000Z"),
            "_id": ObjectId("5d89dff87c254f36ee3ae9c2")
        },
        {
            "league_name": "league-0-1",
            "home_id": "5d88a2857c254f0256737f43",
            "guest_id": "5d88a2857c254f0256737f7e",
            "week_day": 3,
            "weather_type": "sunny",
            "home_goal": 0,
            "guest_goal": 0,
            "friendly": false,
            "fixture_id": "5d89dff87c254f36ee3ae9c6",
            "updated_at": ISODate("2019-09-24T09:20:56.000Z"),
            "created_at": ISODate("2019-09-24T09:20:56.000Z"),
            "_id": ObjectId("5d89dff87c254f36ee3ae9c7")
        },
        {
            "league_name": "league-0-1",
            "home_id": "5d88a2857c254f0256737f9b",
            "guest_id": "5d88a2857c254f0256737f43",
            "week_day": 4,
            "weather_type": "sunny",
            "home_goal": 0,
            "guest_goal": 0,
            "friendly": false,
            "fixture_id": "5d89dff87c254f36ee3ae9d5",
            "updated_at": ISODate("2019-09-24T09:20:56.000Z"),
            "created_at": ISODate("2019-09-24T09:20:56.000Z"),
            "_id": ObjectId("5d89dff87c254f36ee3ae9d7")
        },
        {
            "league_name": "league-0-1",
            "home_id": "5d88a2857c254f0256737f43",
            "guest_id": "5d88a2857c254f0256737fb8",
            "week_day": 5,
            "weather_type": "rainy",
            "home_goal": null,
            "guest_goal": null,
            "friendly": false,
            "fixture_id": "5d89dff87c254f36ee3ae9e1",
            "updated_at": ISODate("2019-09-24T09:20:57.000Z"),
            "created_at": ISODate("2019-09-24T09:20:57.000Z"),
            "_id": ObjectId("5d89dff97c254f36ee3ae9e2")
        },
        {
            "league_name": "league-0-1",
            "home_id": "5d88a2857c254f0256737fd5",
            "guest_id": "5d88a2857c254f0256737f43",
            "week_day": 6,
            "weather_type": "sunny",
            "home_goal": null,
            "guest_goal": null,
            "friendly": false,
            "fixture_id": "5d89dff97c254f36ee3ae9ea",
            "updated_at": ISODate("2019-09-24T09:20:57.000Z"),
            "created_at": ISODate("2019-09-24T09:20:57.000Z"),
            "_id": ObjectId("5d89dff97c254f36ee3ae9ec")
        },
        {
            "league_name": "league-0-1",
            "home_id": "5d88a2857c254f0256737f43",
            "guest_id": "5d88a2857c254f0256737ff2",
            "week_day": 7,
            "weather_type": "sunny",
            "home_goal": null,
            "guest_goal": null,
            "friendly": false,
            "fixture_id": "5d89dff97c254f36ee3ae9fc",
            "updated_at": ISODate("2019-09-24T09:20:57.000Z"),
            "created_at": ISODate("2019-09-24T09:20:57.000Z"),
            "_id": ObjectId("5d89dff97c254f36ee3ae9fd")
        }
    ]
}

Поиск командыкак это:

$team = Team::find($team['team_id']);

РЕДАКТИРОВАНИЕ: методы чанка, а также не могут помочь мне, потому что я просто хочу найти один документ, не получая все документы в одну строку.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...