Індекс MongoDB
Без індексів MongoDB довелося б сканувати кожен файл у колекції та вибирати ті записи, які відповідають критеріям запиту під час читання даних.
Така ефективність сканування повного набору запитів дуже низька, особливо при обробці великої кількості даних — запит може займати десятки секунд або навіть хвилини, що дуже критично впливає на продуктивність сайту.
Індекси — це спеціальні структури даних, що зберігаються в сукупності даних, які легко читати над індексом, а індекси — це структура, яка сортує значення одного або кількох стовпців у таблиці бази даних.
Огляд:
Запит до плану виконання
Приклади тверджень:
Без створення індексу (winningPlan:COLLSCAN), як показано на рисунку нижче:
Функція explain() також може отримувати різні параметри, і ви можете переглядати більш детальний план запиту, встановлюючи різні параметри.
Параметри включають:queryPlanner (за замовчуванням)、executionStats、allPlansExecution
Виконайте explain("executionStats"), і ви побачите, що в плані виконання є більше статистики.
| Параметр | значення | | totalКлючіРозглянули | Кількість індексних сканувань | | totalDocsExamed | Кількість сканувань документів | | nПовернувся | Кількість отриманих результатів | | виконанняTimeMillis | Виконання займає багато часу | | Виконання Успіх | Чи була страта успішною |
Створіть індекс
MongoDB використовує метод createIndex() для створення індексів.
Зверніть увагу, що до версії 3.0.0 метод створення індексу був db.collection.ensureIndex(), а пізніші версії використовували метод db.collection.createIndex().
Створіть єдиний індекс
Створіть композитний індекс
У синтаксисі ключове значення — це індексне поле, яке ви хочете створити, 1 задається для створення індексу у зростаючому порядку, а якщо хочете створити індекс у спадному порядку, можна вказати -1.фон для вказівки, що індекси створюються у фоновому режимі, тобто додати опціональний параметр «фоновий». «Фон» за замовчуванням означає «неправдивий».
Індекси запитів
Команда звучить так:
Видалити індекс
Видалити всі індекси
Видалити вказаний індекс
(Кінець)
|