PHP & mySQL Optimierung Tipps und Tricks |
||
---|---|---|
#0
| ||
22.05.2005, 15:21
Timothy
zu Gast
|
||
|
||
22.05.2005, 15:32
Member
Beiträge: 2176 |
#2
mal ein paar Snippets:
Zitat MySQL:Benchmark Tests bzw. wie man richtig Schleifen bastelt: http://www.blueshoes.org/en/developer/php_bench/ auch interessant: PHP Code auf Geschwindigkeit optimieren Programme zum cachen von PHP Scripten: - Zend Performance Suite (http://www.zend.com/) - PHP Accelerator (http://www.php-accelerator.co.uk/) - Alternative PHP Cache (http://pecl.php.net/package/APC) - AfterBurner Cache (http://bwcache.bware.it/) - TurckMMCache (http://sourceforge.net/project/turckmm-cache/) A HOWTO on Optimizing PHP: http://phplens.com/lens/php-book/optimizing-debugging-php.php Large Scale PHP: http://talks.php.net/show/lt2004-lamp/ ansonsten halt Apache richtig konfigurieren und nicht benötigte Apache-Module und Extensions entfernen... auch interessant, kurz, knapp und prägnant: http://reinholdweber.com/?p=3 |
|
|
||
22.05.2005, 15:33
Timothy
zu Gast
Themenstarter |
#3
mercy für deine Hilfe in meinen Themen
werde mich da mal durchkämpfn |
|
|
||
25.08.2005, 18:47
Member
Beiträge: 11 |
#4
Hallo,
mal aus dem Stehgreif was mir dazu einfällt (und nicht schon genannt worden ist)... PHP: 1) Du schreibst etwas von grossen PHP-Scripten: Evtl. kann man ja die Funktionalität sinnvoll auf mehrere kleinere Scripte verteilen und diese dann entweder als eigene php-Datei aufrufen. z.B. angenommen du hast deine komplette Seite mit Forum, Warenkorb, Suchfunktion etc. alles in einer index.php - dann wäre es besser daraus eine index.php, forum.php, warenkorb.php und suchen.php zu machen (und die entsprechend zu verlinken) Oder du lädst ggf. selten benötigte Programmteile nur bei Bedarf (via include). 2) Evtl. mußt du auch nicht alles zur Laufzeit dynamisch erzeugen lassen sondern kannst es statisch (z.B. als html) ablegen. 3) Anscheinend ist es besser/schneller, Ausgaben/Strings nur dann in '"' (= doppelte Anführungszeichen) zu setzen, wenn diese auch wirklich Variablen enthalten. Also statt echo "Willkommen auf meiner Seite"; besser echo 'Willkommen auf meiner Seite'; Ob echo 'Heute ist der'.$datum; schneller als echo "heute ist der $datum" ist, müßtest du mal mit o.g. Benchmark-Programmen testen. 4) Grundsätzlich könntest du natütlich nochmal deine Programm-Logik durchgehen (Abafragen, Schleifen, etc.) ob sich da noch was optimieren läßt (z.B. nicht x-mal die gleiche Sache prüfen, wenn das Ergebnis eh schon ermittelt wurde) mySQL: 1) Datentypen/Spalten so wählen, daß Sie möglichst optimal sind. Also nicht varchar wenn du immer nur zwei Zeichen speichern willst, lieber tinyint (unsigned) statt int, wenn du nur werte z.B. von 0-100 speichern willst etc. 2) Indexe werden bei bestimmten Abfrage-Konstellationen (z.B. where col1 AND col2) nicht verwendet bzw. die Reihenfolge ist wichtig (mal unter http://dev.mysql.com/doc/mysql/en/mysql-optimization.html stand da was) 3) Nur die Spalten/Felder abfragen, die du auch auswerten willst/benötigst - und diese auch EXPLIZIT angeben, also nicht SELECT * FROM kunden WHERE ... sondern SELECT id, name, plz, ort FROM kunden WHERE ... (siehe auch (2) ) 4) Statt dir Daten mit getrennten Abfragen aus mehreren Tabellen zusammen zu suchen (Select name from kunden_namen..., Select Ort vom kunden_orte, ...) ist es schneller, die zusätzlichen Tabellen/Spalten via JOIN in den query einzubinden. 5) Datenbank-Theorie/Normalisierung: Grau ist alle Theorie... ;-) Eigentlich sollte man ja alles schön normalisieren etc. (also quasi keine Dinge mehrfach/doppelt speichern). ABER: Wenn es wie im Web i.d.Regel auf die Geschwindigkeit ankommt kann es (ist es) durch aus akzeptabel sein, lieber mehr Dinge in einer Tabelle zu speichern, also z.B. statt: id | name | plz_id | ort_id (wobei plz_id, ort_id jeweils auf eine extra Tabelle mit id | plz bzw id | ortname verweisen) lieber gleich kunden_id | name | plz | ort speichern, weil du das dann mit einem einfachen SELECT alles auslesen kannst. So... habe bestimmt was vergessen ... aber fürs Erste sollte das reiche ;-) Viel Erfolg! __________ NeueMedien.Net - Internet Netzwerke Sicherheit |
|
|
||
ich habe ein Internetprojekt mit sehr aufwendigen Datenbankabfragen und leider grossen PHP Scripten.
Welche Tipps habt ihr um das ganze oder PHP / MYSQL allgemein zu optimieren?
Wie optimiert man PHP Scripte? Wie Datenbankabfragen?