V NoSQL:Kdyby to bylo tak snadné , autor píše o MongoDB:
MongoDB není obchod klíč/hodnota, je to o něco víc. Rozhodně to také není RDBMS. MongoDB jsem ve výrobě nepoužil, ale použil jsem ho k vytvoření testovací aplikace a je to velmi cool sada. Zdá se, že je velmi výkonný a buď má, nebo brzy bude mít odolnost proti chybám a automatické sharding (také znám jako to, že se bude škálovat). Myslím, že Mongo by mohlo být nejblíže náhradě RDBMS, kterou jsem zatím viděl. Nebude fungovat pro všechny datové sady a vzory přístupu, ale je vytvořen pro vaše typické CRUD věci. Většina lidí používá relační databázi k ukládání toho, co je v podstatě obrovský hash, a možnost vybrat si na kterémkoli z těchto klíčů. Pokud je vaše DB 3NF a neprovádíte žádné spojení (jen vybíráte hromadu tabulek a dáváte všechny objekty dohromady, neboli to, co dělá většina lidí ve webové aplikaci), MongoDB by pravděpodobně nakopal prdel vy.
Pak na závěr:
Skutečnou věcí, kterou je třeba zdůraznit, je, že pokud vám brání vytvořit něco super úžasného, protože si nemůžete vybrat databázi, děláte to špatně. Pokud znáte mysql, použijte jej. Optimalizujte, když to skutečně potřebujete. Používejte to jako k/v obchod, používejte to jako rdbms, ale proboha, vytvořte si svou zabijáckou aplikaci! Nic z toho nebude pro většinu aplikací důležité. Facebook stále hodně používá MySQL. Wikipedia používá MySQL, hodně. FriendFeed hodně používá MySQL. NoSQL je skvělý nástroj, ale rozhodně nebude vaší konkurenční výhodou, vaši aplikaci nezhorší a především vaše uživatele to nebude zajímat.
Na čem budu stavět svou další aplikaci? Pravděpodobně Postgres. Budu používat NoSQL? Možná. Mohl bych také použít Hadoop a Hive. Možná bych si všechno nechal v plochých souborech. Možná začnu hackovat Maglev. Použiji to, co je pro danou práci nejlepší. Pokud budu potřebovat hlášení, nebudu používat žádné NoSQL. Pokud potřebuji ukládání do mezipaměti, pravděpodobně použiji Tokyo Tyrant. Pokud potřebuji ACIDity, nebudu používat NoSQL. Pokud potřebuji tunu čítačů, použiji Redis. Pokud potřebuji transakce, použiji Postgres. Pokud mám spoustu dokumentů jediného typu, pravděpodobně použiji Mongo. Pokud potřebuji napsat 1 miliardu objektů denně, pravděpodobně bych použil Voldemorta. Pokud potřebuji fulltextové vyhledávání, pravděpodobně bych použil Solr. Pokud potřebuji fulltextové vyhledávání nestálých dat, pravděpodobně bych použil Sphinx.
Tento článek se mi líbí, považuji ho za velmi informativní, poskytuje dobrý přehled o prostředí NoSQL a humbuku. Ale, a to je nejdůležitější část, opravdu pomáhá položit si správné otázky, pokud jde o výběr mezi RDBMS a NoSQL. IMHO stojí za přečtení.