Innerhalb eines php/mysql-Systems haben wir eine Reihe von Konfigurationswerten (ca. 200) - das sind meist Booleans oder Ints und speichern Dinge wie die Anzahl der Ergebnisse pro Seite und ob Seiten sind 2 oder 3 Spalten. Dies ist alles in einer einzigen MySQL-Tabelle gespeichert und wir verwenden eine einzelne Funktion, um diese Werte zurückzugeben, wie sie angefordert werden, auf bestimmten Seiten lädt es wahrscheinlich bis zu 100 Anfragen an diese Config-Tabelle. Mit der Anzahl der Sites, die dieses System verwenden, bedeutet dies, dass in jeder Sekunde potenziell tausende Anfragen auf diese Werte fallen. Die Frage ist, ob diese Methode sinnvoll ist oder ob es vorzuziehen ist, eine einzelne Anfrage pro Seite auszuführen und alle Konfigurationen in einem Array zu speichern und von hier jedes Mal abzurufen.im Array speichern oder mehrere db-Abfragen verwenden
Antwort
Verwenden Sie einen Cache wie Memcache, APC oder andere. Laden Sie die Einstellungen einmal, cachen Sie sie und teilen Sie sie über Ihre Sitzungen mit einem Singleton-Objekt.
Auch wenn der Abfragecache gespeichert wird, ist es eine Verschwendung von Zeit und Ressourcen, die Datenbank immer wieder abzufragen. Stattdessen wird der Cache, der sich im Speicher befindet, bei jeder Anforderung, die die Werte ändert, ungültig, sodass er sofort erneut geladen wird, wenn ein Benutzer das nächste Mal einen Wert von ihm anfordert.
Wenn Sie den Abfragecache MySQL
aktivieren, wird die Abfrage, die Ihre Werte auswählt, im Speicher zwischengespeichert, und MySQL
gibt eine sofortige Antwort aus dem Speicher, sofern die Abfrage oder Daten in den zugrunde liegenden Tabellen nicht geändert werden.
Dies ist sowohl für die Leistung als auch für die Verwaltbarkeit ausgezeichnet.
Die Abfrageergebnisse können zwischen den Sitzungen wiederverwendet werden. Das heißt, wenn Sie 1000
Sitzungen haben, müssen Sie 1000
Kopien Ihrer Daten nicht beibehalten.
wir haben den Abfrage-Cache aktiviert und die Daten in dieser Tabelle sind ziemlich statisch, was ich denke, hält den Cache an Ort und Stelle – robjmills
Möglicherweise möchten Sie Memcache dafür verwenden. Ich denke, es wäre schneller als mehrere DB-Abfragen (sogar mit Query-Caching an), und Sie benötigen keine Datenbankverbindung, um sie zu bekommen.
Sie könnten in Betracht ziehen, sie einfach aus einer Flat-Datei in den Speicher zu laden, dies bietet Ihnen die Möglichkeit, Ihre Config-Werte zu versionieren.
Ich würde Memcache auf jeden Fall empfehlen. Wir haben ein ähnliches Setup und es hat die Ressourcennutzung auf diesem Server spürbar gesenkt.
- 1. Filehandles im Array speichern
- 2. Müllzeichen im Array speichern
- 3. AnyObject im Array speichern?
- 4. Speichern Sie mehrere Werte einer Befehlszeilenoption im Perl-Array
- 5. Speichern Sie mehrere verschiedene dynamisch hinzugefügte Elemente im Array
- 6. Wie speichern Sie mehrere Datensätze in Array?
- 7. numpy Array im Append-Modus speichern
- 8. Mehrere gleiche Werte im Array und außerhalb verwenden
- 9. MongoDB Mongoose speichern oder aktualisieren mit Array
- 10. POST in neue Variable speichern oder $ _POST verwenden
- 11. speichern JSON-Antwort im Array angularjs
- 12. Benutzereingaben im Array speichern objective-c
- 13. Speichern Sie Dateinamen im Array VC++
- 14. Was soll ich verwenden, um mehrere Bilder zu speichern?
- 15. MongoDB - Mehrere Werte im Array übereinstimmen
- 16. Mehrere Bedingungen 'oder' in numpy Array
- 17. Wie baut man im Tokyo-Schrank eine oder mehrere Reihen?
- 18. UIGestureRecognizer im Storyboard kann mehrere Ansichten verwenden?
- 19. Mehrere Jars im Jsvc-Klassenpfad verwenden
- 20. Wann Array zu verwenden oder nicht, um sie in mongodb
- 21. Sollte ich Threads oder mehrere Prozesse verwenden?
- 22. Besser, mehrere Sprachdateien oder 1 zu verwenden?
- 23. Wie mehrere Registrierungsspiegel ausführen oder verwenden?
- 24. Wie speichern Sie mehrere Datentypen in einem Array?
- 25. String im Array finden und nächsten verwenden
- 26. So speichern Sie Zeile/Spalte von MySQL-Daten im Array
- 27. Verwenden Sie Zeiger oder Array in Funktionsparameter
- 28. AngularJS: Verwenden Sie Array (mehrere Werte) für einen Filter
- 29. So speichern Sie Dateien im Djangos-Array-Feld
- 30. , wie die Daten in Array mehrere zu mysql speichern
auf jeden Fall klingt wie der beste Plan, danke – robjmills