Prskavčí blog

Nov 5, 2009 - Comments

NoSQL Databáze v PHP

Včera jsem byl na přednášce Honzy Krále na téma Nechoďte s kanónem na data aneb key value databáze. Přednáška nebyla jen o key value databázích, ale obecně o NO SQL.

Honza shrnul problémy RDBMS databází s ohledem na ACID a co můžou přinést jiné typy databází než sql. Například key value a dokumentové pro nasazení ve webových službách, kde mnohé také vznikly používájí je Google, Amazon, Facebook a jiní.

Přehled NoSQL najdete také ve wikipedii.

Key value databáze nebo úložiště

Dokumentové databáze Toto téma je široké a hodně se o tom diskutovalo a Honza předvedl implementaci Twitter serveru v Pythonu a ukládání dat do Redisu. Lekce šlo kód škálovat a z jedné databáze začít ukládat do deseti různých.

CouchDb databáze je například nasazena v novém Ubuntu 9.10 a bude se její podpora pro Ubuntu One a synchronizaci dat určitě rozšiřovat. Pokud používáte Ubuntu, balíček s aktuální verzí najdete v repository. Za výhodu jednoduchého nasazení CouchDb je jeho REST api a pěkný webový klient pro administraci. Nevýhodou bude výkon ve srovnání s MongoDb, kde je nativní klient a dobrý jazyk pro dotazy. V CouchDb musíte pro psaní materializovaných pohledů používat javascript. MongoDb podporuje index a celkově je v mnoha věcech vyspělejší. Ale chybí například podpora v ubuntu, balíček nenajdete, musíte si ji zkompilovat sami.

Pro Zend Framework pokud vím se připravuje implementace CouchDb. Jak použít v Zend Frameworku MongoDb pro ukládání logů v kombinaci s Zend Tool ukazuje Raphael Stolt.

Pokud víte o větším nasazení těchto databází nebojte se to uvést v komentářích. Například portály jobs.cz a prace.cz používají memcache, ale takových nasazení budou stovky. Má někdo v Čechách nasazené ve velkém CouchDb nebo MongoDb?