Mysql
 sql >> база данни >  >> RDS >> Mysql

Кога да използвате MongoDB или други ориентирани към документи системи за бази данни?

В NoSQL:Ако беше толкова лесно , авторът пише за MongoDB:

MongoDB не е магазин за ключ/стойност, а е доста повече. Определено не е и RDBMS. Не съм използвал MongoDB в производството, но съм го използвал малко за изграждане на тестово приложение и е много готин комплект. Изглежда, че е много производителен и или има, или скоро ще има толерантност към грешки и автоматично разделяне (известен още като ще се мащабира). Мисля, че Mongo може да е най-близкото нещо до заместител на RDBMS, което съм виждал досега. Той няма да работи за всички набори от данни и модели за достъп, но е създаден за типичните ви CRUD неща. Съхраняването на това, което по същество е огромен хеш и възможността да избирате всеки от тези ключове, е това, за което повечето хора използват релационна база данни. Ако вашата DB е 3NF и не правите никакви обединявания (вие просто избирате куп таблици и сглобявате всички обекти, известно още като това, което повечето хора правят в уеб приложение), MongoDB вероятно ще тръгне за вие.

След това в заключението:

Истинското нещо, което трябва да се отбележи, е, че ако ви възпират да направите нещо супер страхотно, защото не можете да изберете база данни, вие го правите погрешно. Ако познавате mysql, просто го използвайте. Оптимизирайте, когато наистина имате нужда. Използвайте го като k/v магазин, използвайте го като rdbms, но за бога, създайте своето убийствено приложение! Нищо от това няма да има значение за повечето приложения. Facebook все още използва MySQL, много. Wikipedia използва MySQL много. FriendFeed използва MySQL много. NoSQL е страхотен инструмент, но със сигурност няма да бъде вашето конкурентно предимство, няма да направи приложението ви горещо и най-вече потребителите ви няма да се интересуват от нищо от това.

На какво ще изградя следващото си приложение? Вероятно Postgres. Ще използвам ли NoSQL? Може би. Може също да използвам Hadoop и Hive. Може да запазя всичко в плоски файлове. Може би ще започна да хаквам Maglev. Ще използвам каквото е най-добро за работата. Ако имам нужда от отчитане, няма да използвам NoSQL. Ако имам нужда от кеширане, вероятно ще използвам Tokyo Tyrant. Ако имам нужда от ACIDity, няма да използвам NoSQL. Ако имам нужда от много броячи, ще използвам Redis. Ако имам нужда от транзакции, ще използвам Postgres. Ако имам много документи от един тип, вероятно ще използвам Mongo. Ако трябва да пиша по 1 милиард обекта на ден, вероятно бих използвал Волдемор. Ако имам нужда от пълно текстово търсене, вероятно бих използвал Solr. Ако имам нужда от пълнотекстово търсене на нестабилни данни, вероятно бих използвал Sphinx.

Харесвам тази статия, намирам я за много информативна, дава добър преглед на NoSQL пейзажа и шума. Но и това е най-важната част, наистина помага да си зададете правилните въпроси, когато става въпрос за избор между RDBMS и NoSQL. Заслужава си да прочетете IMHO.

Алтернативна връзка към статията



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql селектираща заявка в сериализиран масив

  2. Как да ПОРЪЧАТЕ ПО SUM() в MySQL?

  3. Как да конвертирате цял набор от символи и съпоставяне на MySQL база данни в UTF-8?

  4. Как работи функцията MATCH() в MySQL

  5. Пивотни таблици в MySQL