MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да намерите неизползвани индекси в MongoDB?

В тази публикация ще ви покажем как да намерите неизползвани индекси в MongoDB, да проверите статистическите данни за употребата на вашата колекция от индекси и как да премахнете неизползваните си индекси.

Активното управление на индекси на база данни MongoDB в няколко версии на приложения може да бъде предизвикателство за екипите за разработка. Изискванията често се променят с всяка версия, като може да се добавят няколко нови индекса, а старите индекси да бъдат изоставени. С течение на времето това прави трудно да следите кои индекси на MongoDB се използват и кои вече са ненужни.

Индексите имат голямо влияние върху производителността на запис – всеки път, когато има запис в колекция, съответните индекси трябва да бъдат актуализирани. Липсата на индекси се проявява незабавно и забавя заявката – неизползваните индекси са по-фини и трябва да бъдат активно изрязвани, за да се подобри производителността на запис. Повече информация можете да намерите тук – Опасности от изграждането на индекси в MongoDB.

В по-ранни версии на MongoDB нямаше лесен начин да се определи дали даден индекс не се използва. Въпреки това, започвайки от версия 3.2, MongoDB добави поддръжка за оператора $indexStats, който ви позволява да събирате статистически данни за използването на вашия индекс.

Намиране на неизползвани индекси в MongoDB

За да проверите статистическите данни за употребата на конкретен индекс в колекция, можете да използвате тази команда:

db.collection.aggregate([{$indexStats: {}}, {$match: {"name": "<indexname>"}}])

За да получите статистическите данни за всички индекси на колекция:

db.collection.aggregate([{$indexStats:{}}])

Върнатият документ ще изглежда така:

{
"name" : "test",
"key" : {
"key" : 1
},
"host" : "xxx:27017",
"accesses" : {
"ops" : NumberLong(145),
"since" : ISODate("2017-11-25T16:21:36.285Z")
}
}

Двете важни полета, които трябва да отбележите тук, са:

  1. Операции

    Това е броят на операциите, използвали индекса.

  2. От

    Това е времето, от което MongoDB събира статистика и обикновено е последният начален час.

Как да намерите неизползвани индекси в MongoDB - Подобрете своята производителност при запис. Кликнете, за да туитирате

Отпадане на неизползвани индекси в MongoDB

След като идентифицирате и проверите неизползваните индекси на MongoDB, можете да пуснете индекса, като използвате кода по-долу:

db.collection.dropIndex( "<index name>"); or
db.collection.dropIndex("{key1:1.....}")

Както винаги, моля, проверете дали пускате правилния индекс, преди да продължите с операцията за премахване.

Ако имате въпроси относно намирането на неизползвани индекси в MongoDB, оставете коментар по-долу или се свържете с нас на [email protected].


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да форматирате числа в SQL

  2. Как да създадете вложен индекс в MongoDB?

  3. MongoDb Aggregation:Как мога да групирам масив-1 въз основа на друг масив-2, когато са дадени масив-1 и масив-2?

  4. MongoDB преобразува датата в низ

  5. MySQL към MongoDB - Admin Cheat Sheet