abfrage beschleunigen

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

  • abfrage beschleunigen

    hallo...
    die folgende abfrage braucht 2 sekunden. kann man das nich noch etwas beschleunigen oder is das normal so? anstatt den * habe ich auch spaltennamen angegeben, aber das bringt nix.


    Code:
    SELECT t1. * , t2. * , t3. *
    FROM kk_produktgruppen t1
    LEFT JOIN kk_produktgruppen t2 ON t1.pg_id = t2.parent_id
    LEFT JOIN kk_produktgruppen t3 ON t2.pg_id = t3.parent_id
    WHERE t2.parent_id IS NOT NULL
    AND t3.bezeichnung IS NOT NULL
    AND t3.pg_id IN ( 96, 97, 98, 99, 100, 101, 102 ) 
    ORDER BY t1.bezeichnung ASC , t2.bezeichnung ASC , t3.bezeichnung ASC

  • #2
    Schreib mal EXPLAIN vor die Abfrage und poste das Ergebnis, das du dann in phpmyadadmin erhältst
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      hier is das ergebnis

      Code:
      table  type   possible_keys  key  key_len  	 ref  	 rows  	 Extra
      t1 	ALL 	NULL 	NULL 	NULL 	NULL 	678 	Using temporary; Using filesort
      t2 	ALL 	NULL 	NULL 	NULL 	NULL 	678 	Using where
      t3 	ALL 	NULL 	NULL 	NULL 	NULL 	678 	Using where
      die zahlen bei IN(....) sind aus einer anderen abfrage, oder soll ich in diese abfrage noch 2 weitere joins machen?

      Kommentar


      • #4
        Auf welchen Spalten in welchen Tabellen hast du Indizes?
        Es werden nämlich keine genutzt
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          ich habe keine indizes, und ist ja auch nur eine tabelle. wo müsste ich denn diese setzen, bzw. auf welche spalten?

          Kommentar


          • #6
            Original geschrieben von mrhappiness
            Auf welchen Spalten in welchen Tabellen hast du Indizes?
            Es werden nämlich keine genutzt
            hallo mrhappiness,

            vielen dank für den hinweis mit den indizes. ich habe jetzt einen index über die pg_id und die parent_id gelegt und es geht gleich um welten schneller 0,0131sek

            Kommentar


            • #7
              aus
              Code:
              LEFT JOIN kk_produktgruppen t2 ON t1.pg_id = t2.parent_id
              LEFT JOIN kk_produktgruppen t3 ON t2.pg_id = t3.parent_id
              WHERE t2.parent_id IS NOT NULL
              AND t3.bezeichnung IS NOT NULL
              kannst du INNER JOIN machen, und die IS NULL dafür weglassen.
              Dann geht es noch schneller
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar

              Lädt...
              X