Postgres horizontaal schalen

Stel dat u uw bedrijf runt op de postgresql-database. Na een tijdje krijg je zoveel verkeer dat het niet kan worden afgehandeld door een enkele postgresql-instantie, dus je wilt meer instanties toevoegen (horizontaal schalen) om de groei te kunnen verwerken.

Uw gegevens zijn relationeel, dus waarschijnlijk is overschakelen naar een sleutel/waarde-oplossing geen optie.

Hoe zou je het doen met postgresql?

PS. Postgresql-versie: 9.5


Antwoord 1, autoriteit 100%

  1. Als het om een ​​leeszware werklast gaat, moet je gewoon replica’s toevoegen. Voeg zoveel replica’s toe als u nodig hebt om de hele werk belasting af te handelen. U kunt alle zoekopdrachten over de replica’s verdelen op de round robin-manier.

  2. Als het gaat om een ​​schrijfzware werklast, moet u uw database over meerdere servers verdelen. U kunt verschillende tafels op verschillende machines plaatsen of u kunt één tafel op meerdere machines sharden. In het laatste geval kunt u een tabel sharden door een bereik van de primaire sleutel of door een hash van de primaire sleutel of zelfs verticaal door rijen. In elk van de bovenstaande gevallen kunt u de transactionaliteit verliezen, dus wees voorzichtig en zorg ervoor dat alle gegevens die door een transactie zijn gewijzigd en opgevraagd, zich op dezelfde server bevinden.

Other episodes