Hi,
es geht immernoch um das Problem aus diesem Thread:
http://www.tutorials.de/tutorials220368.html
Nun fange ich aber mal ganz einfach und von vorne an.
Ich habe folgende Tabelle:
Gefüllt ist diese mit 769.217 Einträgen.
Die Querys sehen so aus:
Ich teste jetzt mit 3 Int Werten... Einmal vom 1. Eintrag, dann vom 370000. und vom 769217.
Hier die Antwortzeiten:
0,42 Sekunden (SELECT * FROM `test` WHERE start_ip < 264482817 AND end_ip > 264482817
0,42 Sekunden (SELECT * FROM `test` WHERE 264482817 BETWEEN start_ip AND end_ip
0,49 Sekunden (SELECT * FROM `test` WHERE start_ip < 2609201921 AND end_ip > 2609201921
0,42 Sekunden (SELECT * FROM `test` WHERE 2609201921 BETWEEN start_ip AND end_ip
0,56 Sekunden (SELECT * FROM `test` WHERE start_ip < 3657432833 AND end_ip > 3657432833
0,43 Sekunden (SELECT * FROM `test` WHERE 3657432833 BETWEEN start_ip AND end_ip
Mit einem Index auf start_ip und einem Index auf end_ip:
0,00 Sekunden (SELECT * FROM `test` WHERE start_ip < 264482817 AND end_ip > 264482817
0,47 Sekunden (SELECT * FROM `test` WHERE start_ip < 2609201921 AND end_ip > 2609201921
0,00 Sekunden (SELECT * FROM `test` WHERE start_ip < 3657432833 AND end_ip > 3657432833
Lässt sich da jetzt noch was optimieren? Bräuchte eigentlich noch eine schnellere Antwortszeit..
es geht immernoch um das Problem aus diesem Thread:
http://www.tutorials.de/tutorials220368.html
Nun fange ich aber mal ganz einfach und von vorne an.
Ich habe folgende Tabelle:
Code:
CREATE TABLE xxx (
`id` int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,
`start_ip` int( 10 ) unsigned NOT NULL default '0',
`end_ip` int( 10 ) unsigned NOT NULL default '0',
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;
Gefüllt ist diese mit 769.217 Einträgen.
Die Querys sehen so aus:
Code:
SELECT * FROM `test` WHERE start_ip < [INTWERT] AND end_ip > [INTWERT]
bzw.
SELECT * FROM `test` WHERE [INTWERT] BETWEEN start_ip AND end_ip
Ich teste jetzt mit 3 Int Werten... Einmal vom 1. Eintrag, dann vom 370000. und vom 769217.
Hier die Antwortzeiten:
0,42 Sekunden (SELECT * FROM `test` WHERE start_ip < 264482817 AND end_ip > 264482817
0,42 Sekunden (SELECT * FROM `test` WHERE 264482817 BETWEEN start_ip AND end_ip
0,49 Sekunden (SELECT * FROM `test` WHERE start_ip < 2609201921 AND end_ip > 2609201921
0,42 Sekunden (SELECT * FROM `test` WHERE 2609201921 BETWEEN start_ip AND end_ip
0,56 Sekunden (SELECT * FROM `test` WHERE start_ip < 3657432833 AND end_ip > 3657432833
0,43 Sekunden (SELECT * FROM `test` WHERE 3657432833 BETWEEN start_ip AND end_ip
Mit einem Index auf start_ip und einem Index auf end_ip:
0,00 Sekunden (SELECT * FROM `test` WHERE start_ip < 264482817 AND end_ip > 264482817
0,47 Sekunden (SELECT * FROM `test` WHERE start_ip < 2609201921 AND end_ip > 2609201921
0,00 Sekunden (SELECT * FROM `test` WHERE start_ip < 3657432833 AND end_ip > 3657432833
Lässt sich da jetzt noch was optimieren? Bräuchte eigentlich noch eine schnellere Antwortszeit..