PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jaki jest najlepszy sposób na załadowanie ogromnej ilości danych do PostgreSQL?

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 7 rzeczy, na które należy zwrócić uwagę podczas wdrażania PostgreSQL

  2. Jak Sin() działa w PostgreSQL

  3. PostgreSQL:ZAKRES MIĘDZY INTERWAŁEM '10 DNI' A BIEŻĄCYM WIERSZEM

  4. Postgresql odrębny nie działa

  5. Sekwencja PostgreSQL oparta na innej kolumnie