Hallo Matthias,
Ausnahme ;-)
SELECT `land` FROM `ip-de` WHERE 1418465044 BETWEEN `anfang` AND `ende` LIMIT 1
ohne Index .01s mit Index .6s mit uniqe .4s.
Und du hast das wie getestet? Ohne diese Angabe ist die Messung wertlos, sorry für die harten Worte :(
Datenbanken haben starke Caches. Wenn die Query ohne Index schon 1000 ausgeführt wurde, dann ist mit hoher Wahrscheinlichkeit die Query gecached. Um es also wirklich zu messen musst du einerseits dafür sorgen, dass der Cache leer ist (durch z.B. einen Reboot) und zweitens die Query öfter als einmal ausführen (z.B. 10.000 mal, mit BENCHMARK()
).
LG,
CK