Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
Jaka baza byłaby najlepsza jeśli aplikacja potrzebuje wyciągać dane z wieloma filtrami przez stronę?

Dane się bardzo często zmieniają, więc cache za dużo nie pomoże. Więcej odczytów niż zapisów.
Boje się że wtedy wszystkie kolumny będące filtrami musiałyby być indeksowane, przez co czas zapisu poleci strasznie...

Preferowana baza relacyjna. Jakiś protip?

#programowanie #bazydanych #sql
  • 8
via Wykop Mobilny (Android)
  • 0
@Saly: dzięki, ciekawy artykuł, chociaż tam piszą że Inserty przyspieszyły z 11s do 10 sekund. W sumie bez szału...
Filtrów na ten moment jest około 5 varcharow i z 5 booleanow. Niestety to się może zmienić.
@hipodrom: to nie brzmi jak coś ciężkiego. Możesz spróbować pominąć indeksy dla booli, jeśli podział jest w miarę równomierny, bo w takich wypadkach bazy olewają indeksy: dużo szybciej jest przelecieć cały zbiór (przykładowo ograniczony innym btree indexem), niż patrzeć na drzewo. Najlepiej zrobić eksperyment, zasymulować ruch i puścić parę analiz dla różnych zapytań, żeby zobaczyć, czy indeksy mają sens

chociaż tam piszą że Inserty przyspieszyły z 11s do 10 sekund


@
via Wykop Mobilny (Android)
  • 0
@Saly: ale jeśli dobrze rozumiem to btree index gwarantuje unikatowość, czyli teoretycznie insert jakiegoś rekordu mógłby wymusić reindeksowanie pozostałych wierszy? A ten hash nie musi być unique czyli możliwe że ta jego cecha może mnie uratować.
Filtry nie są ciężkie, krótkie stringi. Niestety rekordów jest bardzo bardzo dużo, nie wiem ile dokładnie. Najważniejsze żeby insert nie wymagał reindeksowania innych rekordów...
@hipodrom: jak masz dużo filtrów w różnych konfiguracjach i na dodatek pewnie jeszcze ich zestaw kontrolowany przez użytkownika (czyli dynamiczny) to nie potrzebujesz klasycznej bazy a wyszukiwarki. Obczaj ElasticSearch, Solr itp. One są szczególnie dobrze zoptymalizowane do indeksowania kolumn o niskiej liczności np. typu bool i bardzo efektywnie działają jak masz wiele filtrów.
@Init0: dzięki, muszę poczytać bo nie umiem w hadoopa


@hipodrom: Hadoop w 2022 roku? Ktoś ma wehikuł czasu i przybył do nas z przeszłości? I może do tego Java 6? Hadoop jest mega powolny i passe. Nie idź tą drogą, chyba że chcesz aby Twoje zapytania wykonywały się godzinami. Jeśli już robić analitykę to w Sparku.