Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Поскольку БД не предоставляет запросов для таких нужд, не сложно оказаться в ситуации, когда вы вынуждены извлечь все данные для их автономной обработки через MapReduce.Зачем и куда извлекать данные, если map/reduce сам их извлекает?
Если запросы становятся медленными, вы можете просто добавить индексы в тех местах, в которых это необходимо.До некоторого предела. А потом придется переписывать без всех этих join'ов и транзакций.
В MongoDB наличие или отсутствие индексации меняет результаты выборки иногда
> db.test.insert({a:1, b:2, c:3})
> db.test.insert({a:2, b:3, c:4})
> db.test.insert({a:3, b:4})
> db.test.find({}).sort({c: -1})
{ "_id" : ObjectId("50e4205ce133536eb72229de"), "a" : 2, "b" : 3, "c" : 4 }
{ "_id" : ObjectId("50e42055e133536eb72229dd"), "a" : 1, "b" : 2, "c" : 3 }
{ "_id" : ObjectId("50e42062e133536eb72229df"), "a" : 3, "b" : 4 }
> db.test.ensureIndex({c:1}, {sparse : 1})
> db.test.find({}).sort({c: -1})
{ "_id" : ObjectId("50e4205ce133536eb72229de"), "a" : 2, "b" : 3, "c" : 4 }
{ "_id" : ObjectId("50e42055e133536eb72229dd"), "a" : 1, "b" : 2, "c" : 3 }
SQL — гибок или почему я боюсь NoSQL