MySQL unter PHP langsam?

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

  • MySQL unter PHP langsam?

    Hi,

    kann mir jemand erklären, warum eine Abfrage, die die Summe eines Feldes bildet, bei der ein anderes Feld in einer Liste von ca. 24.000 Daten enthalten sein muss

    Code:
     select sum(Euro) from .... where nummer in ( '092331',..........ca. 24000 Strings....., '0677263');
    in phpmyadmin meine eingestellte Scriptlaufzeit von 300 sek überschritten wird, aber direkt auf der MySQL-Konsole nur ca. 1 Sekunde dauert?

    Kann man da was ändern?

    Viele Grüsse, Martin

  • #2
    Weil phpMyAdmin die Query nicht einfach nur ausführt. Vielleicht ist das Monster aber auch einfach zu fett (max_post_size).

    Kommentar


    • #3
      Ein IN mit 24.000 Werten ist irgendwie am Sinn vorbei... normalerweise macht man bei sowas dann einen JOIN oo,

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Hi,

        Original geschrieben von ghostgambler
        Ein IN mit 24.000 Werten ist irgendwie am Sinn vorbei... normalerweise macht man bei sowas dann einen JOIN oo,
        ein JOIN geht hier nicht, da in der einen Tabelle (die mit den ca. 24.000 Werten, die sind übrigens DISTINCT) ein Wert mehrfach vorkommen kann und damit das Kreuzprodukt ein falsches Ergebnis bringen würde.
        Das habe ich bereits ausprobiert.

        Kommentar


        • #5
          Hi,

          Original geschrieben von onemorenerd
          Weil phpMyAdmin die Query nicht einfach nur ausführt. Vielleicht ist das Monster aber auch einfach zu fett (max_post_size).
          die Max-Post-Size ist nicht betroffen, auch das habe ich gecheckt.

          Was meinst Du mit "Weil phpMyAdmin die Query nicht einfach nur ausführt"?

          Gibt es einen Weg, das in eigenen Programmen zu verbessern?

          Kommentar


          • #6
            Was meinst Du mit "Weil phpMyAdmin die Query nicht einfach nur ausführt"?
            Heißt die Query wird vielleicht analysiert oder so. Im eigenen Programm optimieren kannst du nur die Query, 24000 Werte sind wie schon gesagt ein komplett falscher Weg.
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              Original geschrieben von Saarli
              ein JOIN geht hier nicht, da in der einen Tabelle (die mit den ca. 24.000 Werten, die sind übrigens DISTINCT) ein Wert mehrfach vorkommen kann und damit das Kreuzprodukt ein falsches Ergebnis bringen würde.
              Das habe ich bereits ausprobiert.
              Dann eben Subselect, oder view, oder temp-table, whatever, aber nicht 24.000 IDs in einen Query schreiben, dessen Länge dann die Bytes einer Diskette sprengt!

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar

              Lädt...
              X