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

Wie groß ist zu groß für eine MySQL-Tabelle?

Es gibt keine großartige allgemeine Lösung für die Frage „Wie groß ist zu groß“ – solche Bedenken hängen häufig davon ab, was Sie mit Ihren Daten machen und was Ihre Leistungsüberlegungen sind.

Es gibt einige grundlegende Beschränkungen für Tabellengrößen. Sie können nicht mehr als 1000 Spalten haben. Ihre Datensätze dürfen jeweils nicht größer als 8 KB sein. Diese Grenzwerte ändern sich je nach Datenbankmodul. (Die hier sind für InnoDB.)

Es hört sich so an, als hätten Sie mehrere verschiedene Datensätze in einer Tabelle zusammengeführt. Sie haben wahrscheinlich einige Felder, die Ihnen mitteilen, zu welchem ​​Datensatz dieser Datensatz gehört, zusammen mit einigen Datenfeldern und einigen Zeitstempelinformationen. Das ist keine sehr umfassende Aufzeichnung (es sei denn, Sie protokollieren beispielsweise alle Eingabeparameter jeder Anfrage.) Ihr Hauptproblem wird die Selektivität sein . Es wird eine Herausforderung sein, diese Tabelle sinnvoll zu indizieren. Wenn Ihre gemeinsamen Felder selektiv genug sind, dass Sie sie verwenden können, um zu den gewünschten Datensätzen zu gelangen, ohne die Tabelle zu konsultieren, ist das ein großes Plus. (Vgl. Tabellenscan)

Bei so vielen Datensätzen pro Tag (im Grunde zwei pro Sekunde den ganzen Tag, und ich nehme an, Sie haben eine Spitzenlastperiode, in der sie viel höher ist), sollten Sie auch sicherstellen, dass Sie sich speziell mit Optimierungen auf Verbesserung der Einfügegeschwindigkeit . Als allgemeine Regel gilt, mehr Indizes =langsamere Einfügungen. Wenn Sie können, sollten Sie erwägen, veraltete Datensätze vollständig in einer anderen Tabelle zu archivieren. An früheren Arbeitsplätzen haben wir eine Archivierungsstrategie von Last Month, Prior Three Months, Prior Six Months verwendet, jeweils in separaten Tabellen. Eine andere Idee ist, ältere Datensätze zu löschen. Viele Umgebungen benötigen einfach keine Informationen über ein bestimmtes Datum hinaus. Das Aufbewahren von Protokollierungsaufzeichnungen von vor drei Monaten ist oft zu teuer.

Vernachlässigen Sie schließlich nicht den physischen Speicher Ihres Tisches. Je dünner Ihre Datensätze sind, desto weniger physische E/A müssen auftreten, um einen Datensatz zu lesen (oder einzufügen). Sie können Ihre Indizes auf einer separaten physischen Festplatte speichern. Wenn Ihre Datensätze viele redundante Daten enthalten, kann das komprimierte Speichern der Tabelle tatsächlich eine Geschwindigkeitssteigerung bedeuten. Wenn Sie etwas Geld zum Verbrennen haben, sollten Sie den Wert eines guten RAID-Arrays zum Striping Ihrer Daten in Betracht ziehen.

Also, um Ihre grundlegende Frage zu beantworten:Es sind viele Platten, aber mit einem sorgfältigen Blick auf die Abstimmung wird es kein Problem sein.