2012-04-15 2 views
1

Ich entwickle eine Website, die stark dynamisch ist und ständig eine MySQL-Datenbank verwendet. Meine Frage ist - sollte ich mir Sorgen über die Belastung der Datenbank machen?
Zum Beispiel hat ein Teil der Website einen Live-Chat, der AJAX verwendet, um die Datenbank jede Sekunde für jeden Benutzer zu kontaktieren. Abhängig davon, wie viele Benutzer verbunden sind, sind das viele Anfragen!Sollte ich mir Gedanken über die Belastung einer MySQL-Datenbank machen?

Ist das etwas, mit dem eine MySQL-Datenbank umgehen kann, oder treibe ich es? Vielen Dank.

+0

Ja, Sie sollten sich sicherlich Sorgen machen. Wird es damit umgehen? Niemand weiß, nicht annähernd genug Details, um überhaupt einen Hinweis darauf zu haben. – Mat

Antwort

3

Sie drängen es tatsächlich. Abhängig von Ihren Server- und Online-Benutzerzahlen kann MySQL irgendwann damit umgehen.

MySQL und andere Datenbankverwaltungssysteme sind Datenspeichersysteme und Sie speichern die Daten nicht wirklich! Sie senden gerade Daten zwischen Clients über MySQL und das ist nicht effizient.

Aber die Dinge zu beschleunigen, können Sie MySQL-Speicher Tabellen für Instant Messages verwenden und Offline-Nachrichten in einem anderen MyISAM oder InnoDB-Tabelle halten

Aber die beste Art und Weise (die die Daten werden zu speichern) eine Chat-Infrastruktur zu haben, hat eine Backend-Anwendung, die alle Nachrichten im Speicher hält, und nach einigem begrenzt das Senden nicht empfangener Nachrichten an die MySQL als Offline-Nachrichten. Dies ist sehr ähnlich wie bei MySQL Memory Tables, aber Sie haben mehr Kontrolle über die Daten. Das Problem dabei ist, dass Sie logische und effiziente Datenstrukturen mit guter Speicherverwaltung implementieren müssen, was eine sehr schwierige Aufgabe ist, wenn Sie kein kommerzielles Produkt machen und unnötig, wenn Sie nicht daran denken, das Chat-System zu verkaufen Speichertabellen wie ich beschrieben habe.

Update
Mysql Speicher Tabellen sind flüchtig (wird beim Neustart von Dienst/Server zurückgesetzt), also nicht zum Speichern verwenden, sondern nur zum Speichern von Daten in kurzer Zeit für Sofortnachrichten.

+0

Danke! Ich habe die Art gestoppt, wie ich es gerade mache, und ich werde in MySQL Memory Tables nachsehen. Danke noch einmal. –

+1

Ich habe gerade die Volatilitätsinformationen von Memory Tables hinzugefügt, Sie sollten das auch lesen. Bitte –