max
Erfahrenes Mitglied
Ich habe für ein Statistiksystem die IP2Location Datenbank in Verwendung, diese beinhaltet ca 1,5 Mio. Datensätze.
Mein erster Versuch war es wie in der Dokumentation alles einfach in eine Tabelle meiner MySQL Datenbank zu importieren und mit Indexen zu Versehen, aber dabei ist die Dauer einer Abfrage extrem hoch.
Aufgebaut ist das ganze so:
Meine Abfrage sieht zB so aus:
Jetzt habe ich das ganze auf Verschiedene Tabellen aufgeteilt:
location_staaten:
location_region:
location_ip_range:
s_id: ID des Staates
r_id: ID der Region
Was könnte ich noch machen um die Performance zu Steigern?
Wo setzte ich am Besten einen Index?
Ich will einfach das Herkunftsland und die Region herausfinden wie mache ich hier das Query am besten?
Ich hatte bis jetzt noch nie mit so einer Umfangreichen Datenbank zu tun, und hätte deshalb gerne noch ein paar tipps.
danke
max
Mein erster Versuch war es wie in der Dokumentation alles einfach in eine Tabelle meiner MySQL Datenbank zu importieren und mit Indexen zu Versehen, aber dabei ist die Dauer einer Abfrage extrem hoch.
Aufgebaut ist das ganze so:
Code:
IP_From, IP_To, Country Code, Country Name, Region, City
"201653760","201654015","US","UNITED STATES","VIRGINIA","GORDONSVILLE"
"201654016","201654143","US","UNITED STATES","VIRGINIA","LYNCHBURG"
"201654144","201654159","US","UNITED STATES","VIRGINIA","RICHMOND"
Meine Abfrage sieht zB so aus:
Code:
SELECT `country_code` , `country_name` , `region`
FROM `country`
WHERE `ip_start` <= 50594560 AND `ip_ende` >= 50594560
Jetzt habe ich das ganze auf Verschiedene Tabellen aufgeteilt:
location_staaten:
Code:
id | country_code | country_name
location_region:
Code:
id | s_id | region
location_ip_range:
Code:
s_id | r_id | ip_from | ip_to
s_id: ID des Staates
r_id: ID der Region
Was könnte ich noch machen um die Performance zu Steigern?
Wo setzte ich am Besten einen Index?
Ich will einfach das Herkunftsland und die Region herausfinden wie mache ich hier das Query am besten?
Ich hatte bis jetzt noch nie mit so einer Umfangreichen Datenbank zu tun, und hätte deshalb gerne noch ein paar tipps.
danke
max