Всем привет. Хочу поделиться впечатлениями о NoSQL-БД MongoDB. Начал недавно на неё переносить софт с MySQL, дабы повысить скорость работы. Основная беда была в том, что мои приложения делали очень много вставок в таблицы, при минимальном количестве выборок (примерно 30 к 1). Когда в таблицах было 50 000 записей, скорость работы существенно снижалась, где-то раза в 2. И чем больше данных было в таблицах, тем больше занимали времени новые INSERT-запросы. MongoDB повела себя совсем по другому. Я ожидал просто увеличения средней скорости работы, но она в дополнение к этому показывала её стабильность. То есть не было такого, что чем больше данных я помещаю в коллекции (аналог таблиц в реляционных БД), тем меньше скорость выборок/вставок. Всё было одинаково быстро, и с 50 000 записей и с 80 000. Я конечно не пробовал измерять скорость при полумиллионе записей, но думаю что упадёт она не существенно.
Есть конечно и неудобства. Например, нет аналогов INSERT IGNORE. То есть если у вас есть в коллекции уникальный индекс по какому-то полю, то вы не сможете производить массовые вставки с игнорированием неудачных. В таких случаях можно вставлять записи только по одиночке. Нет и возможности массового сохранения изменений. В MySQL, для того чтобы изменить 3 поля у 30 записей я делал 3 UPDATE-запроса с CASE-конструкциями имеющими 30 вариантов. Тут такого, к сожалению, нет. Можно изменять поля у нескольких записей, но не на разные значения, а на какое-то одно (аналог обычного UPDATE ... SET a=b WHERE...).
В остальном всё очень даже ничего
А из здешних форумчан кто-нибудь имеет опыт работы с Mongo? Может сталкивались с какими-то проблемами или недоработками?