Maciej W. Oracle developer
Temat: PostgreSQL i duża baza danych
Wygląda to na dość dużą bazę. Duża baza = duża kasa. Może stać was na Oracle?220 milionów wierszy na rok to nie tragedia. Należałoby określić przeznaczenie bazy oraz oczekiwany czas odpowiedzi (czyli jak długo może się mielić SELECT).
Co do insertów - będą to pojedyncze inserty czy operacje typu BULK? 220M oddzielnych sesji czy coś bardziej optymalnego?
Jaki jest oczekiwany poziom niezawodności systemu?
Jak długo mają być trzymane dane?
Jesteś pewien, że wystarczy kategoria na produkt? Zastanów się czy produkt nie może należeć do kilku kategorii jednocześnie - późneij może być za późno na zmianę.
Wyszukiwanie danych i ten "swoisty cache"... czy baza nie powinna robić tego sama? Wynajdowanie koła od nowa mija się z celem.
Partycjonowanie (ACCESS predicate oraz klucz do archiwizacji) wydaje się być kluczowym elementem schematu. Oczywiście nie chcesz niczego udziwnionego (jak np. indeksy bitmapowe w Oracle...) a ilość operacji UPDATE należy zminimalizować (jeśli ich nie będzie to super). DELETE też nie wchodzi w grę - logi bazy byłyby zabójcze.
Napisz coś więcej o bazie i jej przeznaczeniu. Jeśli to miałoby być coś w rodzaju wielkiej wspólnej bazy produktów/zakupów na np. allegro - ryzyko utraty danych wydaje się duże a koszt napraw bazy gdy coś padnie też nieprzyjemny.
Czy postgres da radę? Prawie na pewno. Pytanie tylko czy nie lepiej zainwestować w coś co jakby nie patrzeć nadaje się lepiej dla takiej bazy - w drogiego Oracle.
W moim odczuciu "bazy danych" nie zostały zaprojektowane jako najszybsza metoda dostępu do danych - raczej jako elastyczna metoda oferująca łatwy i optymalny dostęp do nich. Od wydajności bazy mamy horyzontalne skalowanie (klastry), macierze raid i inne wynalazki. Ja bym chyba silnie naciskał na Oracle.