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

JOIN na poziomie aplikacji z WHERE i ORDER BY na N fragmentach postgresql

Zwykle dane dzielą się na fragmenty w sposób, który pozwala w ogóle uniknąć JOINS między serwerami. Ponieważ ta operacja jest trudna i kosztowna. Jeśli twój przykład jest hipotetyczny, polecam podzielić wszystkie dane według pola user_id lub user_group_id.

Na przykład shard A będzie zawierał wszystkie tabele z informacjami od użytkowników, które user_id % 3 =0, shard B - który user_id % 3 =1, shard C - który user_id % 3 =2. Tak więc większość potrzebnych JOINS będzie w jednym shard. W przypadku niektórych złożonych zapytań międzyserwerowych możesz mieć wspólny magazyn NO-SQL, taki jak memcached lub Redis, który będzie zawierał kopie potrzebnych danych ze wszystkich fragmentów (oczywiście nie jest to pełna kopia wszystkich tabel). Takie magazyny można łatwo replikować na tyle serwerów, ile potrzebujesz. Tak działają projekty z dużym obciążeniem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sumuj do osiągnięcia wartości progowej, a następnie zresetuj licznik

  2. PostgreSQL vs Oracle:sprawdzanie PL/pgSQL w czasie kompilacji

  3. Wykorzystanie szyfrowania do wzmocnienia bezpieczeństwa bazy danych PostgreSQL

  4. Nowy sposób na spersonalizowanie monitorowania PostgreSQL za pomocą Prometheusa

  5. Jak UPDATE i SELECT jednocześnie?