sql >> Database >  >> RDS >> Oracle

Hoe ontwerp ik een tabel waarin zeer grote gegevens worden opgeslagen?

Die grootte plaatst je in het VLDB-territorium (zeer grote databases). Op die hoogte is alles fundamenteel anders.

Uw vraag kan niet worden beantwoord zonder de volledige vereisten van de verantwoordelijkheden van uw aanvraag. U moet ontwerpen voor prestaties met betrekking tot wat uw toepassing moet DOEN met de gegevens.

Mijn advies is om iemand aan boord te krijgen die eerdere ervaring heeft, anders ben je bijna 100% gegarandeerd dat je faalt.

Als u voor Oracle kiest, biedt het verschillende soorten partitionering die u zeer zorgvuldig wilt gebruiken. U hebt partities nodig voor administratieve doeleinden (gegevens verplaatsen, indexen maken, gegevens herstellen) en voor queryprestaties:

  • Bereikpartitionering, bijvoorbeeld door een datumbereik
  • Lijstpartitionering, voor het opslaan van gegevenssegmenten, zeg per land ('SE', 'US', 'GB')
  • Hash-partitionering. Slaat uw gegevens op in een van de partities op basis van een hash-functie
  • Of een combinatie van het bovenstaande

Je hebt ook iemand nodig die weet hoe je een monstermachine moet bouwen en configureren met een werkelijk geweldige I/O-doorvoer. Je hebt meer dan 1GB/s nodig, wat niet erg goedkoop is als je ook nog 200 TB moet opslaan. Als die 200 TB alleen tabelgegevens zijn, moet u die verdubbelen of verdrievoudigen om indexen, aggregatietabellen, back-ups enz. te kunnen maken.

Sorry dat ik je geen gebruiksklare oplossing kon geven, maar ik wilde er zeker van zijn dat je begrijpt dat je niet alleen een database van bovengemiddelde grootte aan het bouwen bent. Het is enorm!



  1. SQL-selectie uit twee tabellen retourneert dubbele waarden - Codeigniter

  2. hoe `show processlist` in mysql aan te passen?

  3. SQL update een kolom van een andere kolom in een andere tabel

  4. één artikel in meerdere categorieën