Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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КлючіРозглянулиКількість індексних сканувань
totalDocsExamedКількість сканувань документів
nПовернувсяКількість отриманих результатів
виконанняTimeMillisВиконання займає багато часу
Виконання УспіхЧи була страта успішною

Створіть індекс

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