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

Maksymalna (użyteczna) liczba wierszy w tabeli Postgresql

To nie tylko „garść dostrojenia (indeksy itp.)”. Jest to kluczowe i konieczne.

Opublikowałeś kilka szczegółów, ale spróbujmy.

Zasada jest taka:spróbuj znaleźć najczęściej używany zestaw roboczy. Sprawdź, czy mieści się w pamięci RAM. Zoptymalizuj dla niego sprzęt, ustawienia bufora PG/OS oraz indeksy/klastrowanie PG. W przeciwnym razie poszukaj agregatów lub jeśli jest to nie do zaakceptowania i potrzebujesz w pełni losowego dostępu, zastanów się, jaki sprzęt może przeskanować całą tabelę w rozsądnym czasie.

Jak duży jest twój stół (w gigabajtach)? Jak to się ma do całkowitej pamięci RAM? Jakie są Twoje ustawienia PG, w tym shared_buffers i Effective_cache_size? Czy to jest serwer dedykowany? Jeśli masz stół o pojemności 250 gigabajtów i około 10 GB pamięci RAM, oznacza to, że możesz zmieścić tylko 4% stołu.

Czy są jakieś kolumny, które są powszechnie używane do filtrowania, takie jak stan lub data? Czy możesz zidentyfikować zestaw roboczy, który jest najczęściej używany (jak tylko w zeszłym miesiącu)? Jeśli tak, rozważ partycjonowanie lub klastrowanie w tych kolumnach i zdecydowanie je zindeksuj. Zasadniczo starasz się upewnić, że jak najwięcej zestawu roboczego mieści się w pamięci RAM.

Za wszelką cenę unikaj skanowania tabeli, jeśli nie mieści się ona w pamięci RAM. Jeśli naprawdę potrzebujesz absolutnie losowego dostępu, jedynym sposobem, w jaki może on być użyteczny, jest naprawdę zaawansowany sprzęt. Potrzebujesz trwałej konfiguracji pamięci/RAM, która może odczytać 250 GB w rozsądnym czasie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pracować z ułamkami dziesiętnymi o wysokiej precyzji w PHP?

  2. Czy istnieje coś takiego jak funkcja zip() w PostgreSQL, która łączy dwie tablice?

  3. Wizualny interfejs PostgreSQL podobny do phpMyAdmin?

  4. Uzyskaj liczbę dni w miesiącu w PostgreSQL

  5. fe_sendauth:nie podano hasła