NIE użyj indeksów z wyjątkiem unikalnego pojedynczego klawisza numerycznego.
To nie pasuje do wszystkich otrzymanych przez nas teorii DB, ale testy z dużą ilością danych pokazują to. Oto wynik 100 milionów obciążeń na raz, aby osiągnąć 2 miliardy wierszy w tabeli, i za każdym razem kilka różnych zapytań w wynikowej tabeli. Pierwsza grafika z 10-gigabitowym serwerem NAS (150 MB/s), druga z 4 dyskami SSD w macierzy RAID 0 (R/W @ 2 GB/s).
Jeśli masz więcej niż 200 milionów wierszy w tabeli na zwykłych dyskach, szybciej zapomnisz o indeksach. Na dyskach SSD limit wynosi 1 miliard.
Zrobiłem to również z partycjami, aby uzyskać lepsze wyniki, ale z PG9.2 trudno z nich skorzystać, jeśli używasz procedur składowanych. Musisz także zadbać o zapis/odczyt tylko do 1 partycji na raz. Jednak partycje są sposobem na utrzymanie stołów poniżej ściany rzędu 1 miliarda. To także bardzo pomaga do wieloprocesowego przetwarzania Twoich ładunków. W przypadku dysku SSD pojedynczy proces pozwala mi wstawić (skopiować) 18 000 wierszy/s (z uwzględnieniem niektórych prac związanych z przetwarzaniem). Dzięki przetwarzaniu wieloprocesowemu na 6 procesorach rośnie do 80 000 wierszy/s.
Obserwuj wykorzystanie procesora i IO podczas testowania, aby zoptymalizować oba.