Прежде чем приступить к использованию, NoSQL должен решить несколько проблем .Независимо от того, какие ответы вы получите здесь, подумайте над этими вопросами:
- Ожидаете ли вы, что ваша система будет полагаться на BigData ?
- Будет ли полезно быть Распределенным ?
- Сколько Время простоя в порядке?
- Вы бы предпочли поддержку 3 огромных блоков в разных центрах обработки данных или 300 небольших блоков?
Теперь к вашим случаям использования:
NoSQL определенно может решить эту проблему, так как нет 100Требование согласованности% здесь.Сказав это, забавно, что вы упомянули Facebook, поскольку для решения этой проблемы они используют огромную ферму MySQL:)
Application and security logs
=>
NoSQL - этоотлично подходит для хранения журналов, на самом деле многие структуры данных, которые некоторые из решений NoSQL построены поверх , структур, подобных журналам: Log-Structured Merge-Tree
, который / использовался в Google BigTabe, Cassandra и других.Кроме того, журналы могут вырасти до огромных размеров, поэтому с NoSQL
Statistics of the application
=>
вы не можете предоставить подробную информацию.Но NoSQL определенно может решить displaying stats
.
Теперь к вашему вопросу о следует перейти на NoSQL .По правде говоря:
Если большинство гуру NoSQL снимет свои маски, они все согласятся с тем, что MOST проблем, которые разработчики решают изо дня в день, можно и скорее решить с помощьюSQL-решение, такое как PostgreSQL, MySQL и т. Д. С несколькими классными слоями Redis-кэша.И только небольшое подмножество проблем ДЕЙСТВИТЕЛЬНО выиграет от NoSQL.
Если вы решите перейти на NoSQL, я бы порекомендовал решения на основе Erlang (Riak, CouchDB), поскольку NoSQLОтказоустойчивая БД должна иметь чрезвычайно прочную, гибкую и естественно распределенную основу => такую как Erlang OTP.Плюс простота - король.У них, конечно, есть клиенты для большинства языков, поэтому вам даже не нужно знать, как пишется Erlang, если вы не хотите.