Wpis z mikrobloga

@rudi_90: No to:
1. Zmigruj SQL-ową bazę do Neo4ja.
2. Wykonaj zapytanie do SQL-a i zmierz czas.
3. Wykonaj analogiczne zapytanie do Neo4ja i zmierz czas.
4. Porównaj czasy.

Z którym punktem masz problem?
@sorhu: ok, tak własnie zamierzam to zrobić, jednak pojawiają się problemy w postaci takiej że wyniki zapytań w neo4j są cachowego za każdym razem, i raczej nie da rady tego cache'a wyczyścić. Druga sprawa to typy zapytań które najlepiej porównać w obu systemach
@rudi_90: wyniki z rdbmsów też są cachowane. ;)
@sorhu: nie kończyłem żadnych studiów. Praktyka, szczególnie w kontekście zbiorów danych jest ciężka do wiarygodnej weryfikacji bez dużej ilości danych. Wyniki często będą zbliżone. Wynika to nie tylko z szybkości obecnych maszyn, ale również z tego, że sporo baz danych ma algorytm do rozwiązywania prostych przypadków. Przykład: porównaj agregowanie przez elasticsearcha z agregowaniem przez postgresa.
@rudi_90: A co chcesz tak właściwie uzyskać? Pokazać dla jakich problemów neo4j będzie wydajniejsze niż RDBMS (i odwrotnie)? No i ważna kwestia: czy masz narzucony jakiś zbiór danych i/lub konkretne zapytania które masz na nim wykonać?
@rudi_90: Baza grafowa będzie dawała radę wszędzie tam gdzie dane są ze sobą mocno powiązane (i gdzie oczywiście zapytania będą wykorzystywały te powiązania). Przykładem może być graf znajomości między ludźmi, w którym szukasz wszystkich znajomych 4/5/6-stopnia jakiegoś Janka Kowalskiego. W neo4j sprowadzi się to do przechodzenia po grafie, a w RDBMS do wielopoziomowych JOINów na tabeli zawierającej krawędzie (każda krawędź będzie oznaczała znajomość dwóch osób).
@zajety_login: tak, w przypadku zapytań rekursywnych neo4j powinna dawać radę lepiej niż rdbms, ponoć również w przypadku zapytań o rekomendacje (wyznaczanie jakiś trendów) lepiej radzi sobie neo4j. Zastanawiam się też czy można tutaj brać pod uwagę tuning zapytań (dodawaniu indeksów) w neo4j itp