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

Quel gestionnaire de base de données pour une table 100Go ?

J'utilise toutes les bases de données que vous avez mentionnées. Pour cette charge, je peux recommander MySQL ou PostgreSQL car j'ai déjà travaillé avec une charge encore plus élevée sur PostgreSQL. Mais MySQL fera également le même travail - peut-être même mieux car il a été conçu dès le départ pour une charge d'insertion élevée.

La solution sur PostgreSQL avec laquelle j'ai travaillé a été utilisée pour stocker les messages système du réseau de télécommunication et a pu collecter environ 300 Go de données par jour sur une machine sans problème. Mais vous avez besoin d'une architecture matérielle appropriée.

Vous avez besoin d'une machine avec au moins 8 CPU mais plus c'est mieux et vous devez avoir plusieurs files d'attente d'insertion. Utilisez le chargeur en Java ou C ou Golang avec des menaces plus parallèles et effectuez des insertions en bloc à partir de chaque menace à l'aide de la commande COPY pour environ 10 000 enregistrements en un seul bloc. Vous devez utiliser le pool de connexions car PostgreSQL a une surcharge plus élevée pour l'ouverture d'une nouvelle connexion.

Cela vous aidera également à répartir les données sur plus d'espaces de table, chaque espace de table sur un disque physique séparé ou mieux sur une matrice de disques physiques séparée. Si possible, n'utilisez pas d'index sur les données brutes. Séparez vos données brutes des résultats agrégés.

Nous avions une autre solution utilisant l'extension pl/proxy pour PostgreSQL et plusieurs machines physiques pour les données brutes partitionnées par le temps. Ce système était capable de collecter au moins 1 To par jour, mais avec une quantité appropriée de bases de données esclaves encore plus.

Mais vous devez comprendre que pour vraiment traiter cette quantité de données, vous avez besoin d'un matériel approprié avec une configuration appropriée. Il n'y a pas de base de données magique qui fera des miracles sur certaines "configurations de type notebook"...

InfluxDB est une très bonne base de données de séries chronologiques et nous l'utilisons pour la surveillance. Je pense qu'avec suffisamment de processeurs et beaucoup de mémoire, vous pourrez également l'utiliser. J'estime que vous aurez besoin d'au moins 64 Go de RAM car les inserts coûtent plus cher en mémoire. Ainsi, avec plus de files d'attente d'insertion, la base de données aura besoin de beaucoup plus de mémoire car elle stocke tout en mémoire et effectue automatiquement des index sur les balises.