Ergebnis 1 bis 3 von 3

Thema: Query optimieren

  1. #1
    Erfahrener Benutzer Avatar von Gremlin
    Registriert seit
    05.07.2006
    Beiträge
    5.206

    Query optimieren

    Hallo,
    habe folgenden SQL Befehl, wenn ich ihn ausführe legt es mir ständig den ganzen Server platt oO

    SQL Befehl:
    Code:
    SELECT mitglieder.*, land.CC2 FROM
                                    mitglieder
                                    LEFT JOIN ip2c AS land ON ( land.IP_FROM <= inet_aton(mitglieder.ip) AND land.IP_TO >= inet_aton(mitglieder.ip))
                                WHERE land.CC2 NOT IN ('DE', 'AT', 'CH')
    Habe folgende Tabellenstruktur von ip2c:
    Code:
    `ip2c` (
      `IP_FROM` varchar(20) NOT NULL default '0',
      `IP_TO` varchar(20) NOT NULL default '0',
      `CC2` char(2) NOT NULL default '',
      `CC3` char(3) NOT NULL default '',
      `land` tinytext NOT NULL,
     
     KEY `IP_FROM` (`IP_FROM`,`IP_TO`)
    )
    Wie könnte ich den noch sinvoll optimieren? LIMIT hat auch nichts gebracht, habe ich schon probiert .

    Ziel:
    Anhand der IP Adresse der User sämtliche User auslesen deren Herkunftsland anhand der ip2country Tabelle nicht DE/AT/CH ist
    Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!



  2. #2
    Erfahrener Benutzer
    Registriert seit
    22.12.2006
    Beiträge
    526
    Viel optimieren kannst du da nicht. Du kannst höchstens mal Index setzen auf die Felder die er für die Suche benötigt. Die findet er dann schneller, aber ich denke da für jede Userabfrage ebenfalls die IP2C Tabelle dursucht wird, welche ja über 80k Einträge hat, wird es immer so lange dauern.

    Da wäre es vll. einfacher in die Usertabelle das passende Land zur IP reinzuschreiben und danach dann die Usertabelle zu durchsuchen.

  3. #3
    Erfahrener Benutzer
    Registriert seit
    05.07.2006
    Beiträge
    134
    Also ich würd mal noch nen Index auf CC2 setzen und irgendwo hab ich mal gelesen das bei mysql die "not in" Funktion ziemlich Speicherintensiv sein soll.
    Anstatt "not in" einfach mal mit land.CC2!='DE' AND land.CC2!='AT' AND usw. probieren obs dann schneller läuft.
    Loseschleuder.de

    Jede Stunde mehrfach bis zu 100.000 Lose geschenkt!
    Keine extra Anmeldung nötig! Klamm ID genügt! -> Auszahlung ab 100.000 Losen

Ähnliche Themen

  1. VMS optimieren
    Von D_Blade im Forum [HD] Programmieren
    Antworten: 24
    Letzter Beitrag: 13.04.2010, 10:53
  2. SQL-Query.......gehts besser ?
    Von breaker im Forum [HD] Programmieren
    Antworten: 7
    Letzter Beitrag: 11.06.2008, 03:01
  3. db-query oder mysql-query
    Von Xenon im Forum [HD] Programmieren
    Antworten: 6
    Letzter Beitrag: 11.04.2008, 20:46
  4. Falscher Mysql query
    Von Xenon im Forum [HD] Programmieren
    Antworten: 4
    Letzter Beitrag: 21.01.2008, 15:21
  5. [S] VMS 1 optimieren
    Von enrico72 im Forum Support zum VMSone
    Antworten: 1
    Letzter Beitrag: 07.04.2007, 10:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •