jAbLoK

blog už dávno nejen o javě

Kdy databáze nepoužívat naplno

s jedním komentářem

Narazil jsem dnes na článek obsahující pozoruhodný mix nesouvisejících konceptů a zakončený bizarně nekompromisním prohlášením, že:

Dnešní rychlokvašná “MySQL generace” totiž vůbec neví, že databáze jsou určené k tomu, aby se v nich programovalo.

Stručný výtah pro ty, kdo se nechtějí celým pojednáním prokousávat:

  • Nadstavby nad  API  pro komunikaci s databází (neboli autorovo slovníkem “databázové layery”) jsou špatné, pokud podporují více databázových systémů
  • Tyto nadstavby mají smysl pro některé open-source projekty, kde je “rychlost nadřazena nad výkon a spolehlivost” (wtf?)
  • Autor v TSQL vytvořil backend webu s návštěvností v řádu statisíc pageviews denně, a považuje to za správné
  • Výše citované tvrzení o “MySQL generaci” je doplněno úvahou o tom, že nepsat backend webu v SQL dialektu o síle obdobné T-SQL často značí neznalost

Zvážit podporu více databází je pochopitelně namístě, pokud vyvíjíme produkt, který si uživatelé/zákazníci budou instalovat ve svém prostředí. Mimochodem, záhadou zůstává, z jakých důvodů autor původního článku tento smysl přiznává jen open-source projektům.

Více podporovaných databází znamená více potenciálních zákazníků. Jaké procento kódu se vyplatí psát pro každou databázi zvlášť je jistě věcí ekonomické úvahy zohledňující specifika konkrétního produktu. U “běžné databázové aplikace” se ale toto procento dle mého názoru bude blížit nule.

Takové “běžné databázové aplikace” si podle nasazení můžeme zjednodušeně rozdělit do tří skupin:

  1. Aplikace, která zdaleka nezatíží ani jeden server
  2. Aplikace, které jeden server zdaleka nestačí
  3. Aplikace, která perfektně vytíží právě jeden server, plus minus autobus

Co si budem povídat, u skupiny prvni je výkon získaný vykonáváním aplikační logiky v databázi nepodstatný.

U skupiny číslo dvě si uvědomíme, že horizontální škálování v zásadě bezstavové aplikační logiky je brnkačka, a případným zástupcům“rychlokvašné MySQL generaci” jen poděkujeme za prozíravé rozhodnutí do aplikační vrstvy nacpat co nejvíc logiky, kterou by rÁdobyprofesionál programoval v databázi.

Časem podobně jako třeba eBay stejně zjistíme, že na aplikační vrstvu budeme muset převést i operace, které by nás dřív nenapadly – třeba spojování tabulek.

Co se týče skupiny číslo tři, ať každý sám zváží, jak dlouho do ní jeho aplikace bude spadat.

Written by Pavel Kolesnikov

leden 30, 2009 na 5:29 pm

Zasláno do Tech

Tagged with , ,

Jedna odpověď

Subscribe to comments with RSS.

  1. Pěkně řečeno. Občas se usmívám nad tím jak Hulán po zjištění, že existuje něco jiného než PHP se skoro obden rozplývá nad tím co nového zjistil a svým zcela obvyklým způsobem zatracuje to co ještě před krátkou dobou považoval za naprosto úžasné.

    Meap

    leden 30, 2009 at 7:39 pm


Zanechat odpověď