Liczba zapytań do bazy danych
11 July 2008
Comments
Sortowane wg czasu wykonania wszystkich zapytań
Nazwa CMSa | Liczba zapytań | Forma zapytania | Czas wykonania wszystkich zapytań | Czas wykonania zapytań względem najwolniejszego | Czas wykonania 1 zapytania |
MiniSite | 4 | *database-query | 0,0126 | 2,95% | 0,0032 |
jPortal 2.2.2 | 17 | mysq_query | 0,071 | 16,6% | 0,0042 |
LDU 700-10 | 13 | ldu_mysql_query | 0,08 | 18,71% | 0,0062 |
PHP-Fusion 4.01 | 18 | *dbquery | 0,0961 | 22,48% | 0,0053 |
Drupal 4.4.2 | 21 | *_db_query | 0,1288 | 30,12% | 0,0061 |
Xoops 2.0.7 | 9 | xoopsmysqldatabaseproxy-query | 0,1865 | 43, 62% | 0,0207 |
e107 0.616 | 50 | mysq_query | 0,2288 | 53.51% | 0,0046 |
RunCMS 1E | 22 | database-query | 0,2386 | 55,8% | 0,0108 |
Mambo 4.5.1 Beta 4 | 35 | *database->query | 0,2461 | 57,55% | 0,007 |
Xoops 2.0.7 logged in - news | 24 | xoopsmysqldatabaseproxy-query | 0,2583 | 60,41% | 0,0108 |
Postnuke 0.750 | 37 | adodb_mysql-_query | 0,2703 | 63,21% | 0,0073 |
e107 0.616 zalogowany | 59 | mysq_query | 0,2837 | 66,35% | 0,0048 |
Xaraya 0.99 | 48 | adodb_mysql-_query | 0,3289 | 76,92% | 0,0069 |
ttCMS 3.05 | 59 | db-query (ezSQL) | 0,3357 | 78,51% | 0,0057 |
Postnuke 0.726 zalogowany | 57 | adodb_mysql-_query | 0,3855 | 90,15% | 0,0068 |
MD-Pro 1.06 | 53 | adodb_mysql-_query | 0,4154 | 97,15% | 0,0078 |
Postnuke 0.750 zalogowany / xanthia | 57 | adodb_mysql-_query | 0,4276 | 100% | 0,0075 |
ttCMS 3.05 logged in | 90! | db-query (ezSQL) | 0,482 | 112,72% | 0,0054 |
Nazwa CMSa | Czas wykonania 1 zapytania |
MiniSite | 0,00315 |
jPortal 2.2.2 | 0,00417 |
e107 | 0,0045 |
PHP-Fusion 4.01 | 0,0053 |
ttCMS 3.05 zalogowany | 0,0053 |
Drupal 4.4.2 | 0,0061 |
LDU 700-10 | 0,0061 |
Postnuke 0.726 zalogowany | 0,0067 |
Xaraya 0.99 | 0,0068 |
Mambo 4.5.1 B4 | 0,0070 |
Postnuke 0.750 | 0,0073 |
MD-Pro 1.06 | 0,0078 |
Xoops 2.0.7 zalogowany, newsy, ankieta | 0,010 |
RunCMS 1E | 0,0108 |
Powyższe dane pochodzą z rezultatów uzyskanych poprzez bibliotekę Xdebug. Jeżeli nie zaznaczono inaczej testowano standardowe instalacje z wylogowanym użytkownikiem. Jeżeli cms używa bezpośrednich zapytań to typ zapytania będzie mysql_query, jeżeli natomiast skrypt używa jakiejść funkcji bądź klasy to zostanie podana odpowiednia nazwa wykorzystanej metody, w skład której (czasowo też) wchodzą normalne zapytania mysql_query.
Celem tego benchmarku nie jest udowodnienie że cmsy typu MiniSite czy jPortal są lepsze od reszty, gdyż wykonują mniej zapytań. Generalnie im większy cms tym więcej wykonuje zapytań i zarazem ma znacznie wieksze możliwości. Wybieraj cmsa po opcjach jakie daje, a jakich ty potrzebujesz a nie po szybkości... (to drugiej kolejności). Jednak pewne wnioski wyciągnąć trzeba...
Wnioski
Popatrz na koniec tabeli... zapytania do bazy obsługuje ADOdb, najwolniejsza abstrakcyjna baza danych w moim benchmarku. Ten i wspomniany test potwierdzają jak słabe okazują się "wielkie znane i lubiane" komponenty i skrypty. To że inni używają ADOdb nie oznacza że my musi go używać... Tworząc małe skrypty dodatki pokroju ADO są za duże i niepotrzebne, przy dużych skryptach zmniejszają ich wydajność. ttCMS wysyła aż 90 zapytań do bazy za pomocą ezSQL, co zajmuje mniejwięcej tyle samo czasu co 60 zapytań pnADOdb w Postnuke.
RkBlog
Comment article