bazy danych. mój ulubiony typ aplikacji. wspaniałe. cudowne i maksymalnie wkurzające.
czy zawsze najlepiej jest użyć bazy danych – przy czym przez "bazę danych" rozumiemy jakiegoś dbms'a. czy może lepiej użyć czegoś innego?
pytanie to od zawsze istniało. z tym, że różni ludzie różnie na to odpowiadali.
szalę zaczęły przeważać nowoczesne wyszukiwarki. już producenci silnika wyszukiwawczego inktomi (używanego m.in. w msn-search (starym) czy hotbot'cie) zdali sobie sprawę z kilku rzeczy. po pierwsze – wyszukiwanie jako zapytanie do bazy, jest zawsze takie samo. nie ma sensu go za każdym razem parsować czy zajmować się przetwarzaniem sql'owatym. lepiej będzie to przekodować od razu na c. wynik? już pierwsze wersje searcha poza bazą danych chodziły o rząd wielkości szybciej. rząd wielkości!. a wyszukiwanie pełnotekstowe to tylko jeden z elementów.
tematyka ta okazała się na tyle rozległa, że powstał wieloosobowy zespół (w skład którego wszedł profesor michael stonebraker z m.i.t (o ile się nie mylę – to facet który daaaawno temu rozpoczął projekt który finalnie stał się postgresem)) który zajął się tą kwestią.
wyniki – można przeczytać na sieci. w skrócie – bazy danych nie nadają się. specjalizowane aplikacje są szybsze. i to dużo szybsze.
oczywiście jest to standardowy przykład na "coś za coś". zyskujemy na szybkości, tracimy na elastyczności, prostocie. ale – no cóż. czasem po prostu trzeba wiedzieć które technologie gdzie się kończą.