MySQL Forums
Forum List  »  German

Abfrage zur Georeferenzierung von IPs langsam
Posted by: Florian Kreuzer
Date: June 12, 2011 09:37AM

Hallo,

ich habe zwei Tabellen, eine große mit ca. 112.000 Einträgen die eine Zuordnung von IP Netzen zu Ländern hat, mit folgenden 4 Feldern:
id, AnfangIP, EndIP, Land

Die zweite Tabelle (zum test nur 20 Einträge) beinhaltet Logdaten mit IP Adressen und folgende Felder:
id, UserIP, zeit, Land, adresse, agent.

Das Land in zweiter Tabelle ist noch leer und soll aber Anhand der Infos aus der ersten Tabelle gefüllt werden.

Wenn ich nun einen SELECT mache um zu den 20 Logzeilen jeweils das Land dazuzuschreiben, dauert der im Schnitt 0,4 Sekunden.

SELECT table2.Land FROM table1, table2 WHERE AnfangIP <= UserIP AND EndIP >= UserIP

Wenn ich nun die Landinformation zu dem Logeintrag aktualisieren will mit folgendem UPDATE Statement dauert es 15 Sekunden!

UPDATE table1, table2 SET table2.Land = table1.Land WHERE AnfangIP <= UserIP AND EndIP >= UserIP

Was kann ich da optimieren? Im Moment hat in beiden Tabellen nur die id einen PRIMARY Key, wenn ich Indizies hinzufüge wird das ganze noch langsamer. Ich hoffe ihr könnt mir helfen und mir einen Tip geben. Danke.

PS: Die IP Adressen sind jeweils mittels 'INET_ATON' im dezimalen Format gespeichert in einem UNSIGNED INT(10) feld. Also die Funktion der jetzigen Statements ist sauber und klappt so wie ich es will, nur die Performance leider ganz und gar nicht, weil ich das Ding eigentlich regelmäßig über eine table2 mit vielen Tausend Einträgen laufen lassen will.

Options: ReplyQuote


Subject
Views
Written By
Posted
Abfrage zur Georeferenzierung von IPs langsam
1879
June 12, 2011 09:37AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.