Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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

Execute explain("executionStats") и ще откриете, че има повече статистики в плана за изпълнение.

параметързначение
totalКлючовеРазгледаниБрой индексни сканирания
totalDocsПрегледаниБрой сканирания на документи
nВърнал сеБроят на върнатите резултати
екзекуцияTimeMillisИзпълнението отнема много време
Изпълнение УспехДали екзекуцията е била успешна

Създай индекс

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

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

Създай единен индекс


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

В синтаксиса ключовата стойност е индексното поле, което искате да създадете, 1 се задава за създаване на индекс в нарастващ ред, а ако искате да създадете индекс в низходящ ред, можете да зададете -1.фон, за да се уточни, че индексите се създават във заден план, тоест добавете "фонов" опционален параметър. "Фон" по подразбиране означава false.

Индекси за заявки

Командата е следната:



Изтрий индекса

Изтрийте всички индекси

Изтрийте посочения индекс

(Край)




Предишен:Как да ограничите тайванските потребители да се регистрират, да публикувате информация по желание и да поискате съвет как да пишете.
Следващ:[Истински бой]. NET/C# експортира кеша чрез StackExchange.Redis fuzzy заявка
 Хазяин| Публикувано в 11.02.2022 г. 17:49:16 ч. |
Бавен процес на анализ на заявки:

1. Използвайте лога за бавни заявки (system.profile), за да намерите оператори, които надвишават 200ms

2. След това използвайте .explain(), за да анализирате броя на засегнатите редове и да анализирате защо той надвишава 200ms

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