Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment concevoir une table qui stockera des données très volumineuses ?

Cette taille vous place sur le territoire VLDB (très grandes bases de données). Les choses sont fondamentalement différentes à cette altitude.

Votre question ne peut pas être répondue sans les exigences complètes des responsabilités de votre application. Vous devez concevoir des performances par rapport à ce que votre application doit FAIRE avec les données.

Mon conseil est de faire appel à quelqu'un qui a une expérience antérieure, ou vous êtes presque sûr à 100% d'échouer.

Si vous optez pour Oracle, il fournit plusieurs types de partitionnement que vous voudrez utiliser très soigneusement. Vous avez besoin de partitions à des fins administratives (déplacement de données, création d'index, récupération de données) ainsi que pour les performances des requêtes :

  • Partitionnement de plage, par exemple par une plage de dates
  • Partitionnement de liste, pour stocker des tranches de données, par exemple par pays ("SE", "US", "GB")
  • Partitionnement par hachage. Stocke vos données dans l'une des partitions basées sur une fonction de hachage
  • Ou n'importe quelle combinaison des éléments ci-dessus

De plus, vous avez besoin de quelqu'un qui sait comment construire et configurer une machine monstre avec un débit d'E/S vraiment impressionnant. Vous avez besoin de plus de 1 Go/s, ce qui n'est pas très bon marché quand vous avez également besoin de stocker 200 To. En fait, si ces 200 To ne sont que des données de table, vous devrez doubler ou tripler cela pour pouvoir créer des index, des tables agrégées, des sauvegardes, etc.

Désolé de ne pas pouvoir vous donner une solution prête à l'emploi, mais je voulais m'assurer que vous compreniez que vous ne construisez pas simplement une base de données de taille supérieure à la moyenne. C'est énorme !