php: Sitzungen vs. Datenbank

7

Ich habe eine Klasse, die ihr Mitglied (mehr oder weniger 10 Mitglieder) aus einer Datenbank abruft.

Meine Frage ist: ist es effizienter, sie jedes Mal von der db (MySQL) abzurufen, nur eine ID im Array der Sitzung zu lassen oder sie direkt im Array der Sitzung zu speichern?

Und ist der Leistungsunterschied so groß? (bei einer Datenbank mit etwa 100.000 Zeilen)

    
Federico klez Culloca 16.07.2009, 23:24
quelle

3 Antworten

10

In Anbetracht dessen, dass Sie eine ID in der Sitzung speichern, ist die Sitzung am sinnvollsten. Wenn Sie session_start () ausführen, werden Ihre Sitzungsinformationen geladen. Ob Sie danach 1 oder 10 Elemente geladen haben, ist weitgehend irrelevant (es sei denn, sie sind wirklich groß, aber das ist in jedem Fall ein Problem).

Bleiben Sie also bei der Sitzung.

Wenn Sie wirklich auf Geschwindigkeit achten, verwenden Sie einen In-Memory-Cache wie APC oder Memcache. Sich über die Geschwindigkeit von 10 Elementen aus dem Dateisystem oder der Datenbank Sorgen zu machen, ist eine Ablenkung. Der Unterschied wird so minimal sein, dass er irrelevant ist.

Hinweis: Das obige nimmt zwei Dinge an:

  1. Die Abfrage ist performant (das Abrufen von 10 Zeilen von 100 k sollte in weniger als 0,1 Sekunden möglich sein); und
  2. Sie tun eine Abfrage nicht 10.
cletus 17.07.2009, 01:19
quelle
7

Hängt davon ab, was Sie mit "effizient" meinen. Einer ist zeiteffizient, der eigene Speicherplatz platzsparend. Und es ist sehr schwierig, die beiden gegeneinander zu beurteilen, es sei denn, Ihre Anforderungen liegen am äußersten Ende des Spektrums. Du würdest wahrscheinlich OK machen, einfach eine Münze werfen, die Leistung über die Zeit messen und basierend auf beobachteten Problemen anpassen.

  

Vorzeitige Optimierung ist die Wurzel von   alles Böse.

    
Bobby Jack 16.07.2009 23:27
quelle
2

Ob Sie 100.000 Zeilen oder 10.000.000 Zeilen in Ihrer Tabelle haben, ist irrelevant, wenn Sie Ihre Indizes richtig eingerichtet haben.

Nachdem wir gesagt haben, dass die standardmäßige dateibasierte PHP-Sitzung definitiv schneller ist als das Abrufen aus einer Datenbank, werden Sie den Unterschied erst bemerken, wenn Ihre Seite sehr stark genutzt wird, etwa 5.000 Anfragen pro Sekunde.

    
Vincent 27.10.2016 20:18
quelle

Tags und Links