php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 31-03-2009, 10:47
carapau
 Registrierter Benutzer
Links : Onlinestatus : carapau ist offline
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
carapau ist zur Zeit noch ein unbeschriebenes Blatt
Standard Performance: Object serialisieren und in/aus Datei speichern/lesen

Hallo!

Ich habe eine Settings-Tabelle in meiner MySQL DB und hole mir die Werte mit der Funktion getSettings($param).

Momentan greift diese noch direkt auf die DB zu - sehr böse!

Mein Plan:
Settings komplett in ein Object/Array laden, dieses serialisieren und in eine Datei speichern.

Beim aufruf von getSettings($param) wird nun zunächst in der Datei gesucht, welche alle $x Stunden neu erstellt wird.

Normalerweise würde ich so ein Problem mit Memcache lösen, aber leider ist dieses Modul nicht bei jedem Provider verfügbar.

Was haltet ihr davon? Wie performant ist dieser Weg?

Lg
__________________
Lasst euch nicht lumpen, hoch den Humpen!
Mit Zitat antworten
  #2 (permalink)  
Alt 31-03-2009, 12:59
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard Re: Performance: Object serialisieren und in/aus Datei speichern/lesen

Zitat:
Original geschrieben von carapau
Sehr böse!
Warum?


Zitat:
Original geschrieben von carapau
Beim aufruf von getSettings($param) wird nun zunächst in der Datei gesucht, welche alle $x Stunden neu erstellt wird.
Wozu?

Ich versteh echt nicht, wozu das gut sein soll
Mit Zitat antworten
  #3 (permalink)  
Alt 31-03-2009, 13:17
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard Re: Performance: Object serialisieren und in/aus Datei speichern/lesen

Zitat:
Original geschrieben von carapau
Hallo!

Ich habe eine Settings-Tabelle in meiner MySQL DB und hole mir die Werte mit der Funktion getSettings($param).

Momentan greift diese noch direkt auf die DB zu - sehr böse!
Nein, sehr gut!

Zitat:
Original geschrieben von carapau
Mein Plan:
Settings komplett in ein Object/Array laden, dieses serialisieren und in eine Datei speichern.

Beim aufruf von getSettings($param) wird nun zunächst in der Datei gesucht, welche alle $x Stunden neu erstellt wird.
Sehr böse!
Mit Zitat antworten
  #4 (permalink)  
Alt 31-03-2009, 14:28
carapau
 Registrierter Benutzer
Links : Onlinestatus : carapau ist offline
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
carapau ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich möchte nicht, dass jedes Mal auf die DB zugegriffen wird. Wenn man sich überlegt, dass pro Seitenaufruf ca. 10-15 Settings geladen werden... das sind 10-15 Anfragen, die ich vermeiden möchte.

Im Einzelnen ist das natürlich kein Problem, aber so ist ruck zuck das Limit der max. Connections erreicht.

Deshalb am Anfang das Array/Objekt aus der Datei holen und anschließend drauf zugreifen.

Könnt ihr damit was anfangen?
__________________
Lasst euch nicht lumpen, hoch den Humpen!
Mit Zitat antworten
  #5 (permalink)  
Alt 31-03-2009, 14:40
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von carapau
Ich möchte nicht, dass jedes Mal auf die DB zugegriffen wird. Wenn man sich überlegt, dass pro Seitenaufruf ca. 10-15 Settings geladen werden... das sind 10-15 Anfragen, die ich vermeiden möchte.
Das ist Micro-Optimierung, und die bringt ganz selten etwas. Dazu hab ich neulich auch was gebloggt (bzw. auf ein anderes Blog verwiesen): http://phphacker.net/2009/03/11/waru...roduktiv-ist/.

Und 10-15 Queries pro Request sind erstmal gar nichts. Ich kenne Anwendungen, die fahren weit über 200 Queries pro Request. Bevor du serialisierst und in Dateien schreibst (warum dann eigentlich noch Serialisieren?) könntest du dir vielleicht überlegen, die Settings immer komplett auszulesen (wenn es nicht grade mehrere MB sind). Wenn das auch nichts bringt, greif doch auf die Caching-API des Zend Frameworks zurück. Das ist dann auch noch schön gekapselt und austauschbar.
Mit Zitat antworten
  #6 (permalink)  
Alt 31-03-2009, 14:43
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von carapau
Ich möchte nicht, dass jedes Mal auf die DB zugegriffen wird. Wenn man sich überlegt, dass pro Seitenaufruf ca. 10-15 Settings geladen werden... das sind 10-15 Anfragen, die ich vermeiden möchte.
Du kannst auch alle Settings auf einmal laden, dann ist es nur eine Abfrage.
Mit Zitat antworten
  #7 (permalink)  
Alt 31-03-2009, 23:47
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Was sind das denn für Settings? Basiseinstellungen würde ich lieber in eine <beliebiges Format>-Datei legen, z.B. INI, XML, YAML.
Mit Zitat antworten
  #8 (permalink)  
Alt 01-04-2009, 10:56
carapau
 Registrierter Benutzer
Links : Onlinestatus : carapau ist offline
Registriert seit: Aug 2005
Ort: Bielefeld
Beiträge: 347
carapau ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von PHP-Desaster
Was sind das denn für Settings? Basiseinstellungen würde ich lieber in eine <beliebiges Format>-Datei legen, z.B. INI, XML, YAML.
Das sind beliebige Settings. Die wichtigsten Daten sind in einer Config-Datei. Ich hab alles modular aufgebaut und diese Funktionen bieten die Möglichkeit, ähnlich wie bei Wordpress, eigene Settings anzulegen/auszulesen.

Hab mir auch schon überlegt diese Daten als Array in eine Config Datei schreiben zu lassen. Dann muss ich nichts serialisieren und kann direkt auf ein globales Array zugreifen.
__________________
Lasst euch nicht lumpen, hoch den Humpen!
Mit Zitat antworten
  #9 (permalink)  
Alt 01-04-2009, 11:36
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von carapau
Das sind beliebige Settings. Die wichtigsten Daten sind in einer Config-Datei. Ich hab alles modular aufgebaut und diese Funktionen bieten die Möglichkeit, ähnlich wie bei Wordpress, eigene Settings anzulegen/auszulesen.

Hab mir auch schon überlegt diese Daten als Array in eine Config Datei schreiben zu lassen. Dann muss ich nichts serialisieren und kann direkt auf ein globales Array zugreifen.
Globales Array ist pfui. Hier könnte jeder Programmteil ungewollt das Config Array verändern oder überschreiben.
Mit Zitat antworten
  #10 (permalink)  
Alt 01-04-2009, 13:04
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von carapau
Ich möchte nicht, dass jedes Mal auf die DB zugegriffen wird. Wenn man sich überlegt, dass pro Seitenaufruf ca. 10-15 Settings geladen werden... das sind 10-15 Anfragen, die ich vermeiden möchte.
Du suchst möglicherweise sowas wie die sqlCache-Klasse:

http://www.phpclasses.org/browse/package/2646.html
Mit Zitat antworten
  #11 (permalink)  
Alt 01-04-2009, 13:35
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

SQL cached selber schon automatisch. Warum nochmal zusätzlich cachen?
Mit Zitat antworten
  #12 (permalink)  
Alt 01-04-2009, 16:12
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von h3ll
SQL cached selber schon automatisch. Warum nochmal zusätzlich cachen?
Wie kann eine Abfragesprache "automatisch cachen"?
Mit Zitat antworten
  #13 (permalink)  
Alt 01-04-2009, 16:16
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von fireweasel
Wie kann eine Abfragesprache "automatisch cachen"?
1. Abfrage:

SELECT * FROM person WHERE lastname LIKE 'Müller%'

MySQL durchsucht die gecacheten Queries, findet aber nix, also wird die Datenbank durchsucht und das Ergebnis geliefert, gleichzeitig wird das Ergebnis im Cache abgelegt.


2. Abfrage:

SELECT * FROM person WHERE lastname LIKE 'Müller%'

MySQL findet das Query im Cache und liefert sofort das bereits abgespeicherte Ergebnis.


Siehe:
http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

Hast du dich noch nie gewundert, warum komplexe Queries beim ersten mal so lange brauchen und ab dem zweiten mal flott erledigt werden?

Geändert von h3ll (01-04-2009 um 16:22 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 01-04-2009, 17:53
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von h3ll
(...) Hast du dich noch nie gewundert, warum komplexe Queries beim ersten mal so lange brauchen und ab dem zweiten mal flott erledigt werden? [/B]
Nein, aber ich wundere mich immer, wenn SQL und mySQL gleich gesetzt werden.
Ich hatte übersehen, dass der OP von " MySQL DB" schrub ...

Klingt trotzdem interessant, auch wenn der Query-Cache nicht in jedem Fall wie gedacht funktionieren zu scheint.

Gibt es eine sichere Möglichkeit, von PHP aus zu erkennen, ob der Query-Cache aktiv ist?
Oder muss ich jetzt das Handbuch nach einer API-Funktion abgrasen?
Mit Zitat antworten
  #15 (permalink)  
Alt 01-04-2009, 17:58
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von fireweasel
Gibt es eine sichere Möglichkeit, von PHP aus zu erkennen, ob der Query-Cache aktiv ist?
Du hättest nur meinen Link anklicken müssen:

Code:
mysql> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:05 Uhr.