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

Live-Chat mit PHP und jQuery. Wo Informationen speichern? MySQL oder Datei?

Jeder hat ein breites Spektrum an Meinungen geäußert, aber ich glaube nicht, dass irgendjemand den Nagel wirklich auf den Kopf getroffen hat.

Wenn es um die Speicherung von Daten geht, bestimmen die Datenmenge, die Zugriffsrate und mehrere andere Faktoren die beste Speicherplattform.

Einige Leute haben vorgeschlagen, memcached zu verwenden. Obwohl dies eine gültige Antwort ist (Sie können verwenden), halte ich dies nicht für eine gute Idee, allein aufgrund der Tatsache, dass Memcache Daten im Speicher Ihres Servers speichert.

Ihr Arbeitsspeicher dient nicht der Datenspeicherung, sondern der Verwendung der eigentlichen Anwendungen, des Betriebssystems, der gemeinsam genutzten Bibliotheken usw.

Das Speichern von Daten im Arbeitsspeicher kann viele Probleme mit anderen derzeit laufenden Anwendungen verursachen. Wenn Sie zu viele Daten in Ihrem RAM speichern, können Ihre Anwendungen die ihnen zugewiesenen Vorgänge nicht abschließen.

Dies ist zwar schneller als eine festplattenbasierte Speicherplattform wie MySQL, aber nicht so zuverlässig.

Ich persönlich würde MySQL als serverseitige Speicher-Engine verwenden. Dies würde die Anzahl der Probleme verringern, auf die Sie stoßen würden, und macht die Daten auch sehr überschaubar.

Um die Antworten an Ihre Kunden zu beschleunigen, würde ich versuchen, node auszuführen auf Ihrem Server.

Dies liegt daran, dass es ereignisgesteuert und nicht blockierend ist.

Was bedeutet das?

Nun, wenn Client A einige Daten anfordert, die auf der Festplatte gespeichert sind, könnte PHP traditionell zu C++ sagen, hol mir diesen Datenblock, der auf diesem Sektor der Festplatte gespeichert ist. C++ würde sagen „ok, kein Problem“, und während es losgeht, um die Informationen zu erhalten, würde PHP sitzen und darauf warten, dass die Daten gelesen und zurückgegeben werden, bevor es seine Operationen fortsetzt und blockiert alle anderen Clients in der Zwischenzeit.

Bei Knoten ist es etwas anders. Node sagt zum Kernel:„Holen Sie mir diesen Informationsblock, und wenn Sie fertig sind, rufen Sie mich an“, und nimmt dann weiterhin Anfragen von anderen Clients entgegen, die möglicherweise keinen Festplattenzugriff benötigen.

So plötzlich, weil wir dem Kernel einen Rückruf zugewiesen haben, müssen wir nicht warten :), glückliche Tage.

Schauen Sie sich dieses Bild an:

Dies könnte wirklich die Antwort sein, nach der Sie suchen. Im Folgenden finden Sie anschaulichere und detailliertere Informationen darüber, wie Knoten die richtige Wahl für Sie sein könnte: