Ankündigung

Einklappen
Keine Ankündigung bisher.

Performance Probleme mit SQL Abfrage

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Performance Probleme mit SQL Abfrage

    Hallo zusammen,

    ich habe mich letzte Woche mal wieder an meine "schlechten" SQL Querrys gesetzt. Hier mal ein Teil, der dafür verantwortlich ist das die Webseite 3 - 5 Sekunden brauch zum laden. Sobald ich diesen Teil heraus kommentiere, lädt sie in einem "normalen" Zustand.

    PHP-Code:
                $sql2 "SELECT web.URL, web.ID, web.Name, web.AnzeigeName, web.Gruppe, web.IsPorno, pic.Bildpfad, bes.Text_de, uka.Name as kat, uka.ID as katId
    FROM Webseite web
    inner join Beschreibung bes on bes.KatEintrag_ID = CONCAT( web.Kategorie_ID,web.ID) 
    inner join Bilder pic on pic.KatEintrag_ID = CONCAT( web.Kategorie_ID,web.ID) 
    inner join Unterkategorie uka on web.Unterkategorie_ID = uka.ID
    WHERE web.Status = 0 
    AND web.Gruppe =  '"
    .$this->Gruppe."'
    AND web.ID !=  "
    .$this->Identity.";";


     

                
    $result2 mysql_query($sql2);
     
          
                while (
    $row mysql_fetch_assoc($result2)) 
                {
                    
    $sameSite = new Webseite();    
                    
    $sameSite -> LoadFromRow($row);
                    
    array_push($this -> Aehnlichkeiten,$sameSite);  
                } 

    Für einen guten Tipp, oder ein Idee währe ich euch sehr dankbar!

    Gruß und schon mal Danke

  • #2
    Welche Indices sind gesetzt? Um wieviele Einträge handelt es sich (Anzahl)? Wie ist das Explain dazu?

    Kommentar


    • #3
      Wenn Du für einen Join erstmal Felder per Concat zusammenkleben mußt, dann ist der Wurm drin. Da ist keine Indexnutzung möglich.
      Du wirst die Tabellenstruktur in Ordnung bringen müssen.

      Kommentar


      • #4
        Zitat von achtelpetit Beitrag anzeigen
        Wenn Du für einen Join erstmal Felder per Concat zusammenkleben mußt, dann ist der Wurm drin. Da ist keine Indexnutzung möglich.
        Du wirst die Tabellenstruktur in Ordnung bringen müssen.
        Jein Concat greift u.U. durchaus auf Indices zu. Ist aber müßig. Viel leichter ist es, die ON-Klausel auf ein OR oder UNION o.ä. umzubauen.
        Ich fragte auch nicht ohne Grund nach den Datenmengen. Denn der Concat ist beispielsweise irrelevant, wenn die größten Tabellen nicht auf die Abfrage hin vernünftig indiziert sind undwenn diese eine Tabelle eh nur wenige Datensätze beinhaltet.

        Kommentar

        Lädt...
        X