Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 5609|Ответ: 2

Просмотр и создание индексов MongoDB

[Скопировать ссылку]
Опубликовано 11.02.2022 17:46:29 | | | |
Индекс MongoDB

Без индексов MongoDB пришлось бы сканировать каждый файл в коллекции и выбирать записи, соответствующие критериям запроса при чтении данных.

Такая эффективность сканирования всего набора очень низкая, особенно при обработке большого объёма данных, запрос может занимать десятки секунд или даже минуты, что очень негативно сказывается на производительности сайта.

Индексы — это специальные структуры данных, хранящиеся в наборе данных, которые легко читаются по индексу, а индексы — это структура, сортирующая значения одного или нескольких столбцов в таблице базы данных.

Обзор:

Распространённые команды запроса MongoDB
https://www.itsvse.com/thread-10169-1-1.html

Запрос к плану исполнения

Примеры операторов:

Без создания индекса (winningPlan:COLLSCAN), как показано на рисунке ниже:



Функция explain() также может получать разные параметры, и вы можете видеть более подробный план запроса, устанавливая разные параметры.

Параметры включают:queryPlanner (по умолчанию)、executionStats、allPlansExecution

Выполните explain ("executionStats"), и вы обнаружите, что в плане выполнения будет больше статистики.

параметрзначение
totalКлючиИзученоКоличество индексных сканов
totalDocsОсмотренныеКоличество сканирований документов
nВернулсяКоличество возвращенных результатов
ИсполнениеВремяМиллисВыполнение занимает много времени
ИсполнениеУспехБыла ли казнь успешной

Создайте индекс

MongoDB использует метод createIndex() для создания индексов.

Обратите внимание, что до версии 3.0.0 метод создания индекса назывался db.collection.ensureIndex(), а в более поздних версиях использовался метод db.collection.createIndex().

Создайте единый индекс


Создайте составный индекс

В синтаксисе ключевое значение — это индексное поле, которое вы хотите создать, 1 задаётся для создания индекса в порядке возрастания, а если вы хотите создать индекс в убывающем порядке, можно указать -1.фон, чтобы указать, что индексы создаются в фоне., то есть добавить «фоновый» необязательный параметр. «Фон» по умолчанию ложится.

Индексы запросов

Команда следующая:



Удалить индекс

Удалить все индексы

Удалить указанный индекс

(Конец)




Предыдущий:Как ограничить регистрацию тайваньскими пользователями, публиковать информацию по своему усмотрению и просить советы по написанию.
Следующий:[Настоящий бой]. NET/C# экспортирует кэш с помощью нечеткого запроса StackExchange.Redis
 Хозяин| Опубликовано 11.02.2022 17:49:16 |
Медленный процесс анализа запросов:

1. Используйте журнал медленного запроса (system.profile) для поиска операторов, превышающих 200 мс

2. Затем используйте .explain(), чтобы проанализировать количество затронутых строк и понять, почему оно превышает 200 мс

3. Решите, нужно ли вам добавить индекс

Включите медленный запрос:


Параметр:

0: Закрыто, данные не собираются.
1: Собирать медленные данные запросов, по умолчанию 100 миллисекунд.
2: Собрать все данные

Ознакомьтесь с результатами:


Примечание: Индексы можно считать постоянными в памяти: если объём данных достигает 100 миллионов, чем меньше индексов, тем лучше, потому что они займут большое количество памяти. Согласно интернету, 1 миллион индексов занимает около 50 миллионов памяти. Если это 100 миллионов, то он будет занимать 5G-память.

Опубликовано 13.02.2022 16:30:52 |
учёный...
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com