sql >> Database >  >> RDS >> Mysql

Welke db-manager voor een 100Go-tafel?

Ik gebruik alle databases die je noemde. Voor deze belasting kan ik MySQL of PostgreSQL aanbevelen omdat ik al met een nog hogere belasting op PostgreSQL heb gewerkt. Maar MySQL zal hetzelfde werk doen - misschien zelfs beter omdat het vanaf het begin is ontworpen voor een hoge wisselplaatbelasting.

Oplossing op PostgreSQL waarmee ik werkte, werd gebruikt voor het opslaan van systeemberichten van het telecommunicatienetwerk en kon zonder problemen ~ 300 GB aan gegevens per dag op één machine verzamelen. Maar je hebt een goede HW-architectuur nodig.

U hebt een machine nodig met minimaal 8 CPU's, maar meer is beter en u moet meerdere wachtrijen voor het invoegen hebben. Gebruik loader in Java of C of golang met meer parallelle bedreigingen en voer bulk-inserts van elke bedreiging uit met behulp van het COPY-commando voor ~10000 records in één bulk. U moet verbindingspool gebruiken omdat PostgreSQL een hogere overhead heeft voor het openen van een nieuwe verbinding.

Het zal u ook helpen om gegevens over meer tablespaces te verdelen, elke tablespace op een aparte fysieke schijf of beter op een aparte fysieke schijfarray. Gebruik indien mogelijk geen indexen op onbewerkte gegevens. Scheid uw onbewerkte gegevens van geaggregeerde resultaten.

We hadden een andere oplossing met de pl/proxy-extensie voor PostgreSQL en verschillende fysieke machines voor onbewerkte gegevens, gepartitioneerd op tijd. Dit systeem was in staat om minimaal 1TB per dag te verzamelen, maar met de juiste hoeveelheid slave-databases zelfs nog meer.

Maar je moet begrijpen dat om deze hoeveelheid gegevens echt te verwerken, je de juiste hardware met de juiste configuratie nodig hebt. Er is geen magische database die wonderen zal doen op een "notebook-achtige configuratie"...

InfluxDB is echt een geweldige tijdreeksdatabase en we gebruiken het voor monitoring. Ik geloof dat je met voldoende CPU's en echt veel geheugen ook in staat zult zijn om het te gebruiken. Ik schat dat je minimaal 64 GB RAM nodig hebt, omdat inserts geheugen duurder zijn. Dus met meer wachtrijen voor het invoegen heeft de database veel meer geheugen nodig omdat het alles in het geheugen opslaat en automatisch indexeert op tags.




  1. Wat zijn de voordelen van UPDATE LOW_PRIORITY en INSERT DELAYED INTO?

  2. Hoe gebruik ik MySQL in Visual Studio 2010 met EF4?

  3. SQL Server equivalent aan Oracle's CREATE OR REPLACE VIEW

  4. Verschil tussen deze twee benaderingen van samenvoegingstafels?