CouchDB vs. mySQL – CouchConf in Berlin

Skalowanie i wydajność bazy danych  są ważnymi czynnikiem w przypadku dużych projektów internetowych. Wykorzystaliśmy okazję i biorąc udział w „CouchConf World Tour” w Berlinie – to pierwsze spotkanie w Europie, poznaliśmy lepiej CouchDB. 

CouchDB jest przedstawicielem tzw. baz danych NoSQL – w przeciwieństwie do relacyjnych baz danych, takich jak MySQL, dane nie są prezentowane w tabelach, ale jako obiekty w formacie JSON. W praktyce oznacza to, że na przykład opinie Klientów o produkcie znajdują się w dokumencie .

Jaką więc ma przewagę nad bazami danych jak na przykład MySQL?

Skalowanie bazy danych jest przede wszystkim o wiele łatwiejsze niż korzystając z bazy danych MySQL. Z CouchBase (kominacja CouchDB, Membase i Memcached) wystarczy tylko kilka kliknięć, aby nowy serwer DB przeniósł dane do klastra. W pełni niezależnie i automatycznie synchronizuje dane i zapobiega ich dublowaniu i dystrybucji, a także chroni przed utratą danych w przypadku awarii serwera.

W przypadku dużych aplikacji internetowych , takich jak sieci społeczne lub gry przeglądarkowe, które potrzebują dużego klastra serwerów, CouchDB ma przewagę poprzez elastyczne skalowanie. Całe firmy takie jak Zynga oferujące m.in. Farmville korzystają z CouchDB lub Couchbase .

Jakie są wady?

  • n:m relacje nie są zbyt łatwe do mapowania w CouchDB. 
  • należy przemyśleć i zastanowić się, jak tworzyć dokumenty i jakie informacje powinny one zawierać.
  • wydajność na pojedynczym serwerze wcale nie jest lepsza w porównaniu do MySQL, a może jest nawet gorsza.
  • złożone zapytania, potrzebne na przykład do szczegółowych statystyk nie mogą być sprawdzone bezpośrednio z bazy danych.
  • niektóre funkcje, takie jak wyszukiwanie pełnotekstowe nie jest możliwe. To wymaga wykorzystania rozwiązań alternatywnych, takich jak Lucene.

Gdzie zatem stosowanie CouchDB ma sens?

Przede wszystkim przy danych, których ilość może gwałtownie wzrastać np. komentarze, wiadomości, opinie itd. Dzięki CouchBase nie zabraknie miejsca.

Wypróbujemy CouchDB w kilku dużych projektach internetowych i zdamy relację z efektów.

 

 

pluswerk