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%
-
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.
-
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.