W poprzednim wątku wykazałem, że nawet w przypadku prostych zapytań select (prostych czyli bez złączeń tabel, bez grupowania, bez agregacji, bez offset, bez sortowania wielokolumnowego, bez LIKE, itd), transakcyjna baza danych sql jest około 100tys (słownie sto tysięcy) razy wolniejsza od programu napisanego w kompilowanych językach (np. C, C++, Java, Delphi, Assembler). Żeby nie było znowu wielkich nieporozumień, przypomnę co najistotniejsze, mianowicie test zakładał, iż dane są całkowicie zbuforowane w pamięci RAM.
Spowolnienie 100tys razy oznacza, że baza danych (dokładnie pisząc silnik bazy danych) wykonuje 100tys instrukcji procesora w jakimś innym celu po to, aby potem wykonać jedną instrukcję w celu właściwym, czyli w celu wyszukania właściwych danych. Jakby baza poświęcałą 300 instrukcji na inny cel, to może bym zrozumiał. Jednak 100tys nie mieści mi się w głowie.
Zastanawia mnie czego się spodziewać w przypadku baz NoSQL. W przypadku baz NoSQL rząd wielkości też będzie w okolicach 100tys, bo
baza 'musi jeszcze coś innego'?
Pozdrawiam