php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.10.2006, 21:52  
Gast
 
Beiträge: n/a
Standard MySQL Abfrage macht Seite langsam

Hallo ich bin derzeit dabei ein Forum zu programmieren.

Es läuft auch alles super schnell nur leider bei der Abfrage für die ganzen posts nicht, ich arbeite derzeit mit nur 1 mysql abfrage allerdings besitzt diese 5 INNER JOINS und ich vermut das genau diese die Seite so langsam machen, an dem Webspace kann es nicht liegen denn es liegt alles local auf meinem Rechner und dort benötigt die Seite allein schon 3 sekunden bis sie komplett aufgebaut ist was aufalle fehle viel zu langsam ist.

Ich hoffe ihr könnt mir ein paar Tips geben wie ich diese Abfrage optimieren kann damit sie schnell und dennoch resourcen schonend läuft.

PHP-Code:
$postser $db->query ("SELECT p.*, pr.*, a.*, r.*, u.username, u.register, t.titel FROM v_forum_posts p INNER JOIN v_user u on p.user_id = u.id INNER JOIN v_forum_thread t on p.thread_id = t.id INNER JOIN v_user_profile pr on p.user_id = pr.userid INNER JOIN v_avatars a on p.user_id = a.user_id INNER JOIN v_user_rangs r on u.group_id = r.group_id WHERE p.thread_id=$_GET[threadid] ORDER BY p.post_id ASC");
    while(
$post $db->fetch_array($postser)){
        
$newicq preg_replace('/-/'''$post['icq']);
        
$register date("d.m.Y, H:i",$post['register']);
        
$day date("w",$post['time']);
        
$day2 date("d",$post['time']);
        
$days = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
        
$month date("n",$post['time']);
        
$months = array(1=>"Januar"2=>"Februar"3=>"März"4=>"April"5=>"Mai"6=>"Juni"7=>"Juli"8=>"August"9=>"September"10=>"Oktober"11=>"November"12=>"Dezember");
        
$year date("Y, H:i",$post['time']);
        
$date "$days[$day], $day2. $months[$month] $year";
         eval (
"\$posts .= \"".$tpl->getforumtemplate("posts_bit")."\";");
    } 
Ich bedanke mich schonmal für jede Hilfe und sry falls es das falsche forum ist.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.10.2006, 22:12  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
SELECT
p.*, pr.*, a.*, r.*, u.username, u.register, t.titel
FROM
v_forum_posts p
INNER JOIN v_user u on p.user_id = u.id
INNER JOIN v_forum_thread t on p.thread_id = t.id
INNER JOIN v_user_profile pr on p.user_id = pr.userid
INNER JOIN v_avatars a on p.user_id = a.user_id
INNER JOIN v_user_rangs r on u.group_id = r.group_id
WHERE
p.thread_id=$_GET[threadid]
ORDER BY
p.post_id ASC
(reindenken kommt noch ^^)

->1. wie lange dauert die Abfrage auf der Komandozeile?
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 17.10.2006, 16:00  
Gast
 
Beiträge: n/a
Standard

Mhh tut mir leid ich versteh jetzt grad nicht ganz was du mit dem Code ausschnitt sagen willst und mit dem reindenken, genauso wenig was verstehst du unter der kommandozeile, ich verwende die aktuelle xampp verson für windows.
  Mit Zitat antworten
Alt 17.10.2006, 16:34  
Erfahrener Benutzer
 
Registriert seit: 12.07.2004
Beiträge: 219
d-jango zeigte ein beschämendes Verhalten in der Vergangenheit
d-jango eine Nachricht über ICQ schicken
Standard

Also,

mit der Komandozeile meint phpdummi, dass es auch eine andere Möglichkeit gibt, eine SQL-Abfrage an den Datenbank-Server (in diesem Fall mySQL) zu senden. Die Komandozeile startest du in der Eingabeaufforderung (Start -> Ausführen -> "cmd" -> Enter) in dem du ins Programmverzeichnis von XAMPP wechselst.

Wenn du es normal installiert hast, müsste sich das Verzeichnis hier befinden (C:\apachefriends\xampp\)

Hier wechselst du dann weiter in das Unterverzeichnis .\mysql\bin\ und startest die Kommandozeile von Mysql mit dem folgenden Befehl:

mysql -u root
__________________
http://www.fun2stay.de
d-jango ist offline   Mit Zitat antworten
Alt 17.10.2006, 16:54  
Gast
 
Beiträge: n/a
Standard

Ok soweit bin ich nun gekommen, nur wie starte ich nun die mysql abfrage über die kommandozeile, ich habe sie scheon einfach eingefügt nur dabei passiert nichts wenn ich auf enter drücke
  Mit Zitat antworten
Alt 17.10.2006, 23:00  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard


ich dachte du hättest wenigstens gaaanz wenig erfahrung aber egal ....
also die erste meldung die mysql nachdem anmelden ausspuckt ist "commands end with ;"
dass heißt das du an deine abfrage ; ranhängen musst.

ich hoffe du hasst vorher erstmal folgendes gemacht:
Code:
mysql> -u root
mysql> use dbname

mysql >SELECT
     ->p.*, pr.*, a.*, r.*, u.username, u.register, t.titel
     ->FROM
     ->v_forum_posts p
     ->INNER JOIN v_user u on p.user_id = u.id
     ->INNER JOIN v_forum_thread t on p.thread_id = t.id
     ->INNER JOIN v_user_profile pr on p.user_id = pr.userid
     ->INNER JOIN v_avatars a on p.user_id = a.user_id
     ->INNER JOIN v_user_rangs r on u.group_id = r.group_id
     ->WHERE
     ->p.thread_id=$_GET[threadid]
     ->ORDER BY
     ->p.post_id ASC
     ->;
die darstellung deiner abfrage in geordneter reihenfolge hilft beim "vorstellen was passiert" bei deiner abfrage

wie lange dauert die abfrage nun auf der komandozeile
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 18.10.2006, 12:25  
Gast
 
Beiträge: n/a
Standard

Ich habe mal von der kompletten Kommandozeile ein Screen gemacht.

Ich hoffe mal das ich alles richtig gemacht habe.


  Mit Zitat antworten
Alt 19.10.2006, 14:13  
Gast
 
Beiträge: n/a
Standard

Mh kann mir niemand mehr weiterhelfen, mittlerweiel geh ich ja davon aus das es nicht an der Datenbank abfrage liegt sondern mehr an was anderem, aber wieso geht es dann ratz fatz wenn ich die abfrage entferne?
  Mit Zitat antworten
Alt 19.10.2006, 14:46  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Was genau möchtest du denn jetzt wissen?
xabbuh ist offline   Mit Zitat antworten
Alt 19.10.2006, 15:19  
Gast
 
Beiträge: n/a
Standard

Was es noch für Möglichkeiten geben kann warum die Seite langsam wird sobald die Abfrage ausgeführt wird.

EDIT1:

Habe soeben rausgefunden das es an dieser Zeile in der Schleife liegt.

PHP-Code:
$newicq preg_replace('/-/'''$post['icq']); 
Doch diese abfrage benötige ich um alle - aus der ICQ Nummer zu entfernen falls jemand die - mit eingibt.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Abfrage von Ver. 5 für Ver 3. des MySQL Servers FireFIghter Datenbanken 3 02.02.2007 17:18
Datum bezogene mysql abfrage ApfeL Datenbanken 5 22.10.2006 16:03
MySQL Abfrage Von / Bis andrew22 Datenbanken 1 02.10.2006 11:04
MySQL - Abfrage: Unterschiedliche Ergebnisse aus PHP/manuell horstenpeter Datenbanken 3 16.07.2006 13:22
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
mysql abfrage mqs PHP Tipps 2006 4 09.04.2006 17:57
Abfrage bei mySQL 4 ApfeL Datenbanken 5 24.03.2006 18:53
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
komplizierte mysql abfrage php_frage PHP Tipps 2007 5 28.12.2005 17:55
[Erledigt] MySQL Abfrage mit Session Variable PHP Tipps 2005-2 5 13.10.2005 13:17
Ergebnisse einer MySQL Abfrage an nächste seite übertragen Plague PHP Tipps 2005-2 4 07.09.2005 21:51
MySql Abfrage? PHP Tipps 2005 12 07.03.2005 15:54
Mysql Abfrage Datenbanken 4 27.02.2005 22:26
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
MySQL mehrfach abfrage PHP Tipps 2004-2 3 22.11.2004 14:23

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql abfrage langsam, mysql langsam, mysql query langsam, mysql abfrage zu langsam, php mysql langsam, xampp mysql langsam, mysql abfragen langsam, mysql zu langsam, php seite zu langsam, mysql inner join langsam, webseite langsam php mysql, mysql abfragen zu langsam, linux mysql langsam, php seite langsam, langsame mysql abfragen, php mysql abfrage langsam, xampp sql abfrage, http://www.php.de/datenbanken/42538-mysql-abfrage-macht-seite-langsam.html, seite langsam, php mysql abfragen langsam

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.