Работа с индексами
Создаем коллекцию и добавляем в нее много записей:
for(i = 0; i < 15000; i++) {
db.bigCollection.insert({
a: parseInt(Math.random() * 10000),
b: Math.random()
});
}
Получаем количество записей в коллекции:
db.bigCollection.count();
Просматриваем добавленные в коллекцию записи:
db.bigCollection.find();
Получаем все записи, у которых поле A превышает 9990.
При этом упорядочиваем результат по возрастанию значения поля A:
db.bigCollection.find({ "a": {$gt: 9990} }).sort({ "a": 1 });
Получаем информацию, по какому плану была выполнена обработка запроса:
db.bigCollection.find({ "a": {$gt: 9990} }).sort({ "a": 1 }).explain();
Полностью удаляем коллекцию:
db.bigCollection.drop();
Добавление индекса
Добавим индекс к коллекции.
Индексироваться будет поле A в порядке возрастания.
Добавляем индекс:
db.bigCollection.ensureIndex({"a": 1});
Заполняем коллекцию записями:
for(i = 0; i < 15000; i++) {
db.bigCollection.insert({
a: parseInt(Math.random() * 10000),
b: Math.random()
});
}
Смотрим план выполнения запроса на выборку данных:
db.bigCollection.find({ "a": {$gt: 9990} }).sort({ "a": 1 }).explain();
Таким образом, благодаря использованию индекса, время выполнения запроса на выборку значительно уменьшилось.
Индексы могут ускорять запросы на выборку данных.
Last updated
Was this helpful?