2012-03-27 16 views
0

Welche Einschränkungen gibt es hinsichtlich der MySQL-Leistung, wenn es um die Anzahl der Zeilen in einer Tabelle geht? Ich habe derzeit ein laufendes Projekt, das cronjobs jede Stunde ausführt. Diese sammeln Daten und schreiben sie in die Datenbank.Einschränkungen der Zeilenanzahl in MySQL

Um die Leistung zu verbessern, überlege ich, die Daten dieser Cronjobs in einer Tabelle zu speichern. (Nicht nur das Ergebnis, sondern all die Dinge). Die Daten selbst werden ähnlich sein;

So sind die tatsächlichen Daten pro Zeile ziemlich klein. Das Problem ist, dass die Anzahl der Zeilen in dieser Tabelle exponentiell anwächst. Mit jedem Bild, das ich hinzufügen, brauche ich die myData für jede anderes Bild. Das heißt, mit 3000 Bildern werde ich 3000^2 = 9 Millionen Zeilen haben (ohne die Diagonalen zu zählen, weil ich zu faul bin, es jetzt zu tun).

Ich bin darüber besorgt, was MySQL mit solchen Voraussetzungen umgehen kann. Jede Stunde fügt ungefähr 100-300 neue Einträge in der Originentabelle hinzu, dh 10.000 bis 90.000 neue Einträge in der Kreuztabelle.

sich mehrere Fragen:

  • Gibt es Beschränkungen in Bezug auf die Anzahl der Zeilen in einer Tabelle?
  • Wann (wenn) wird MySQL Leistung deutlich fallen lassen?
  • Welche Maßnahmen kann ich ergreifen, um diese Kreuztabelle so schnell wie möglich zu machen (Zugriff möglich, Schreiben muss nicht schnell sein)?

EDIT

I durch Polynom-Interpolation gerade beendet und es stellt sich das Wachstum aus nicht so drastisch sein, wie ich ursprünglich dachte. Da die Relation 1-2 die gleichen Daten wie 2-1 hat, brauche ich nur eine "halbe" Tabelle, was das Wachstum auf (x^2-x)/2 reduziert.

Trotzdem wird es eine Menge bekommen.

Antwort

0

9 Millionen Zeilen ist keine große Tabelle. Angesichts der von Ihnen bereitgestellten Struktur ist die Leistung von Select/Update/Insert-Abfragen kein Problem, solange sie richtig indiziert ist. DDL kann etwas langsam sein.

Da alle Zeilen bereits durch einen kartesischen Join beschrieben wurden, müssen Sie nicht die gesamte Tabelle auffüllen.

Wenn die Reihenfolge der Bildpaare nicht signifikant ist, können Sie Speicherplatz sparen, indem Sie die Attribute sortieren oder ein Zwei-/Drei-Tabellen-Schema verwenden, in dem die imgIds gleichwertig sind.

+1

Nun, wann wird ein Tisch riesig? Milliarden? Ich hoffe, das Projekt wird noch einige Zeit laufen, so dass es tatsächlich im Bereich der Möglichkeiten liegt –

Verwandte Themen