Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist InnoDB (MySQL 5.5.8) die richtige Wahl für mehrere Milliarden Zeilen?

Eine einfache Antwort auf Ihre Frage wäre:Ja, InnoDB wäre die perfekte Wahl für einen Datensatz mit mehreren Milliarden Zeilen.

Es gibt eine Vielzahl von Optimierungsmöglichkeiten.

Die offensichtlichsten Optimierungen wären das Festlegen eines großen Pufferpools, da der Pufferpool das Wichtigste ist, wenn es um InnoDB geht, da InnoDB sowohl die Daten als auch den Index im Pufferpool puffert. Wenn Sie einen dedizierten MySQL-Server mit nur InnoDB-Tabellen haben, sollten Sie bis zu 80 % des verfügbaren Arbeitsspeichers so einrichten, dass er von InnoDB verwendet wird.

Eine weitere sehr wichtige Optimierung besteht darin, die richtigen Indizes für die Tabelle zu haben (unter Berücksichtigung des Datenzugriffs-/Aktualisierungsmusters), sowohl primär als auch sekundär. (Denken Sie daran, dass Primärindizes automatisch an Sekundärindizes angehängt werden).

Bei InnoDB gibt es einige Extras wie Schutz vor Datenkorruption, automatische Wiederherstellung usw.

Um die Schreibleistung zu erhöhen, sollten Sie Ihre Transaktionsprotokolldateien so einrichten, dass sie insgesamt bis zu 4 GB umfassen.

Eine andere Sache, die Sie tun können, ist die Tabelle zu partitionieren.

Sie können mehr Leistung erzielen, indem Sie das bin-log-format auf "row" setzen und den auto_inc_lock_mode auf 2 setzen (das stellt sicher, dass innodb beim Einfügen in Auto-Increment-Spalten keine Sperren auf Tabellenebene hält).

Wenn Sie einen speziellen Rat benötigen, können Sie sich an mich wenden, ich bin gerne bereit zu helfen.