Tak zupełnie przy okazji ... (ten post w zasadzie powinien się znaleźć w dziale "Propozycje dla Developerów" - ale skoro takiego nie ma, a mowa o kwestiach wydajności Joomla! ...).
Ładnych kilka lat temu jeden klient przygwoździł mnie kłopotliwym do realizacji wymogiem.
Mianowicie zmuszony zostałem do wykonania strony generowanej w oparciu o bazę danych w MS Access.
Większość pewnie wie, ale pozostałym wyjaśniam, że jakkolwiek Access to środowisko całkiem, całkiem relacyjnych baz danych, obsługuje SQL itd. , ale ma drobny mankament: wydajnośc. Kilku uzytkowników jednocześnie to jeszcze ok, ale powyżej 10 to już nic nie ma prawa działać ...
No i jak tu zrobić stronę korzystającą z takiej bazy danych ??
Sprawę rozwiązałem (strona została zrobiona w ASP) w ten sposób, że przy starcie Aplikacji (kto zna ASP, to wie, pozostałym wyjaśniam, że to moment, kiedy startuje serwer www - tak z grubsza...) stronka ładuje całą bazę danych do tablic w pamięci operacyjnej serwera. Jest to jedyny moment, kiedy oprogramowanie strony odwołuje się do bazy. Natomiast wszelkie późniejsze operacje związane z wykonywaniem żądań klientów realizowane są poprzez proste operacje na tablicach.
W ten sposób ominąłem problem wydajności samej bazy danych, ale też i uzyskałem dodatkowy efekt - zwiększyłem wydajność strony nawet w porównaniu z "odpowiednimi" bazami danych jak np. SQL Server czy MySQL.
Ktoś może powie - ale wprowadzanie 100 MB danych do RAM serwera to bez sensu ... Odpowiadam: dobrze zrobiona, RELACYJNA baza danych nie musi mieć 100MB, żeby zawierała dużą ilośc informacji (np. wymieniona stronka miała kilkaset szczegółowo opisanych oproduktów w wielu typach i kategoriach, z wieloma odmianami każdego produktu - i zabierała kilkadziesiąt Kilo). Nie wspominając, że przy dzisiejszym sprzęcie (nawet domowym) 100MB RAM to pikuś ...
No dobrze, ale do czego zmierzam?
Czy nie byłoby fajnie, gdyby ktoś zdolny (PHP...) napisał komponent (albo i wersję Joomla!) działającą w podobny sposób?
Czyli ładującą całość bazy do tablic w RAM i wykonującą operacje na tablicach zamiast na bazie ...
To by radykalnie zwiększyło wydajność takiej wersji Joomla!, a problem tysięcy uzytkowników na raz (być może) przestałby istnieć.
No i odpadłaby konieczność kupowania superwydajnych CMS np. generujących statyczne zapisy ...
Nie jestem pewien, czy mój tok myślenia jest prawidłowy, ale może cóś byłoby na rzeczy
