Tim: GROUP BY udf()

Hallo,
ich habe ein SQL Query in dem ich mit Hilfe einer UDF nach einem bestimmten Attribut gruppiere (UDF macht aus einer IPv4 einen Ländernamen).
Die UDF benötigt ca. 0,04 Sek., um ein Ergebnis zu liefern. Die ganze Abfrage am sich dauert aber sehr lange. Gibt es eine Möglichkeit die Abfragedauert deutlich zu reduzieren?

Viele Grüße, Tim.

  1. Hallo
    ich glaube damit dir hier jemand weiterhelfen kann, müßtest du schon mal etwas mehr Infos geben und deine SQL Query zeigen.

    viele Grüße
    hawk

    1. Hallo
      ich glaube damit dir hier jemand weiterhelfen kann, müßtest du schon mal etwas mehr Infos geben und deine SQL Query zeigen.

      viele Grüße
      hawk

      Okay

      Meine Abfrage sieht ungefähr so aus

        
      SELECT *, count(*) as n  
      FROM table  
      JOIN table 2 ON (id)  
      WHERE time <= ? AND time => ?  
      GROUP BY somevalue, IP2COUNTRY(ipv4)  
      
      

      Dann habe ich es geändert zu:

        
      SELECT *, count(*) as n, IP2COUNTRY(ipv4) AS ipaddr  
      FROM table  
      JOIN table 2 ON (id)  
      WHERE time <= ? AND time => ?  
      GROUP BY somevalue, ipaddr  
      
      

      Das hat leider auch nichts gebracht. Ist alles viel zu langsam :(

      1. moin,

        Das hat leider auch nichts gebracht. Ist alles viel zu langsam :(

        du benutzt mysql, sonst hätte dir jedes andere DBMS schon eine fehlermeldung ausgegeben. welche version, wie gross sind deine beiden tabellen, welche spalten haben sie, was genau willst du abfragen, beispieldaten aus beiden tabellen und darauf bezogen eine beispielhafte ergebnisliste.

        Ilja

  2. Hi,

    Bitte keine Doppelpostings: https://forum.selfhtml.org/?t=199201&m=1339721

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  3. Hallo Tim,

    Die UDF benötigt ca. 0,04 Sek., um ein Ergebnis zu liefern. Die ganze Abfrage am sich dauert aber sehr lange. Gibt es eine Möglichkeit die Abfragedauert deutlich zu reduzieren?

    warum bist Du überrascht? Genau das hatte ich Dir vorhergesagt.

    Soll es schneller sein, so nutze ein leistungsfähigeres Datenbankmanagementsystem als MySQL. Ilja hat Dir angedeutet, welches die von Dir benötigte Funktionalität bietet.

    Freundliche Grüße

    Vinzenz