sql >> Database >  >> RDS >> Mysql

Is InnoDB (MySQL 5.5.8) de juiste keuze voor rijen van meerdere miljarden?

Een eenvoudig antwoord op uw vraag zou zijn:ja, InnoDB zou de perfecte keuze zijn voor een dataset van meerdere miljarden rijen.

Er is een groot aantal optimalisaties mogelijk.

De meest voor de hand liggende optimalisaties zijn het instellen van een grote bufferpool, aangezien bufferpool het allerbelangrijkste is als het gaat om InnoDB, omdat InnoDB zowel de gegevens als de index in de bufferpool buffert. Als u een speciale MySQL-server heeft met alleen InnoDB-tabellen, moet u tot 80% van het beschikbare RAM-geheugen instellen om door InnoDB te worden gebruikt.

Een andere zeer belangrijke optimalisatie is het hebben van de juiste indexen op tafel (rekening houdend met het gegevenstoegangs-/updatepatroon), zowel primair als secundair. (Houd er rekening mee dat primaire indexen automatisch worden toegevoegd aan secundaire indexen).

Met InnoDB zijn er wat extra goodies, zoals bescherming tegen datacorruptie, auto-recovery enz.

Wat betreft het verhogen van de schrijfprestaties, moet u uw transactielogbestanden zo instellen dat ze maximaal 4G zijn.

Een ander ding dat je kunt doen, is de tafel partitioneren.

U kunt zoeken naar meer prestaties door het bin-log-formaat in te stellen op "rij", en de auto_inc_lock_mode in te stellen op 2 (dat zorgt ervoor dat innodb geen vergrendelingen op tabelniveau vasthoudt bij het invoegen in kolommen met automatisch ophogen).

Als je specifiek advies nodig hebt, kun je contact met me opnemen, ik ben meer dan bereid om te helpen.



  1. Hoe kan ik een enkele mssql-verbindingspool gebruiken voor meerdere routes in een Express 4-webtoepassing?

  2. Datetime NOW PHP mysql (+ PDO variant)

  3. SQLite-queryresultaten uitvoeren als een INSERT-instructie

  4. Hoe een door de gebruiker gedefinieerde uitzondering te declareren met behulp van een uitzonderingsvariabele in Oracle Database?