![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Witam,
tworzę system, który będzie "bombardowany" dużą liczbą danych. Może przedstawię poglądową strukturę (nazwy poglądowe): produkty: 1x bigint, 1x character varying, 2x tsvector, 1x timestamp produkty_kategorie: 1x bigint, 1x int, 1x smallint zakupy: 1x serial, 2x bigint, 2x smallint, 1x numeric, 1x timestamp Z moich obliczeń wynika, że dziennie do tabeli produkty będzie trafiało ok. 590 000 rekordów, co rocznie daje prawie 220 000 000. Każdemu produktowi odpowiadają średnio 4 rekordy w tabeli produkty_kategorie oraz 3 rekordy w tabeli zakupy. Nawet jeżeli moje obliczenia są zbyt optymistyczne (niech będzie 50% wyliczanych wartości) to i tak baza danych wydaje się być (dla mnie) gigantyczna. Generalnie baza będzie zasilana praktycznie non stop danymi (24h/dobę INSERTY do wspomnianych tabel). Wyszukiwanie będzie odbywało się tylko i wyłącznie po obu polach tsvector z tabeli produkty wraz z polem timestamp z tabeli zakupy. Raz wyszukana informacja zostanie zapisana w tabeli raportów aby następne takie samo żądanie nie wymagało zliczania wszystkiego od nowa (taki swoisty cache). Pytanie zasadnicze: czy PostgreSQL da w tym przypadku radę? Czy macie jakieś doświadczenie przy podobnych liczbach rekordów? Jak to wszystko może działać? Na co zwrócić uwagę? Z góry wielkie dzięki za odpowiedź, pion |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 10:22 |