PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

JOIN на ниво приложение с WHERE и ORDER BY на N postgresql шарда

Обикновено данните се разделят на фрагменти по начин, който позволява изобщо да се избегнат междусървърните JOINS. Защото тази операция е трудна и скъпа. Ако вашият пример е хипотетичен, бих препоръчал да разделите всички данни по поле user_id или user_group_id.

Например сегмент A ще съдържа всички таблици с информация от потребители, чийто user_id % 3 =0, сегмент B - кой user_id % 3 =1, сегмент C - кой user_id % 3 =2. Така че повечето от необходимите JOINS ще бъдат вътре в един шард. За някои сложни междусървърни заявки може да имате общо NO-SQL хранилище като memcached или Redis, което ще има копия на необходимите данни от всички шардове (разбира се, това не е пълно копие на всички таблици). Такива хранилища могат лесно да се копират на толкова сървъри, колкото са ви необходими. Ето как работят високонатоварените проекти.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 30 таблици с малко редове - TRUNCATE най-бързият начин да ги изпразните и да нулирате прикачените последователности?

  2. Грешка:Трябва да инсталирате поне един пакет postgresql-client-<version>

  3. Postgresql - избиране на наблюдения и поставяне на нова таблица

  4. Как да направите тази групова заявка за ActiveRecord в postgres

  5. Как да изброявате потребителски типове с помощта на Postgres information_schema