Я наверняка пытался переместить API, который у меня есть, с помощью приложения iphone для переполнения стека, которое я написал некоторое время назад в MongoDB, где оно в настоящее время находится в базе данных MySQL. В необработанном виде дамп SO CC находится в диапазоне нескольких гигабайт, а способ, которым я создавал документы для MongoDB, привел к базе данных 10G +. Можно утверждать, что я не создавал документы хорошо, но я не хотел тратить кучу времени на это.
Одна из самых первых вещей, с которыми вы столкнетесь, если начнете идти по этому пути, - это отсутствие поддержки 32 бит. Конечно, сейчас все движется к 64-битной версии, но просто стоит иметь в виду. Я не думаю, что какая-либо из основных баз данных документов поддерживает подкачку в 32-битном режиме, и это понятно с точки зрения сложности кода.
Для проверки того, что я хотел сделать, я использовал 64-битный экземплярный экземпляр EC2. Второе, с чем я столкнулся, это то, что, несмотря на то, что у этой машины было 7 ГБ памяти, когда физическая память была исчерпана, все шло от быстрого к не очень быстрому. Я не уверен, что у меня не было настроено что-то неправильно в этот момент, потому что отсутствие поддержки 32-битной системы убило то, для чего я хотел это использовать, но я все еще хотел посмотреть, как это выглядело. Загрузка одного и того же дампа данных в MySQL занимает около 2 минут на гораздо менее мощном компьютере, но скрипт, который я использовал для загрузки двух баз данных, работает по-разному, поэтому я не могу сделать хорошее сравнение. Выполнение только подмножества данных в MongoDB было намного быстрее, если это приводило к базе данных, которая была меньше 7G.
Я думаю, что я извлек из этого то, что большие базы данных будут работать просто отлично, но вам, возможно, придется подумать о том, как структурировать данные, лучше, чем с традиционной базой данных, если вы хотите поддерживать высокую производительность. Я вижу, что многие люди используют MongoDB для ведения журналов, и я могу представить, что многие из этих баз данных являются массивными, но в то же время они могут не выполнять много произвольного доступа, что может маскировать то, как будет выглядеть производительность для более традиционных приложений. .
Недавним ресурсом, который может быть полезен, является визуальное руководство по системам nosql . Есть много вариантов за пределами MongoDB. Я также использовал Redis, но не с такой большой базой данных.