Tommi: MySQL: INDEX Geschwindigkeitstest

Beitrag lesen

Hallo,

hm, also allmählich bin ich "so schlau als wie zuvor" ;-)

Ich habe jetzt einfach mal folgendes Probiert:

ich habe eine Tabelle mit zwei Spalten, id (INT, auto_increment) und x (INT) angelegt.
Nun habe ich 10000 Zeilen mit Werten für x zwischen 1 und 100 eingetragen.
Dann habe ich die Tabelle mit Inhalt kopiert und für die Kopie einen Index für "x" erstellt.

Mit diesem Skript habe ich dann die Geschwindigkeit verglichen:

<?php
$mit_index_schneller = 0;
for($x=0; $x<1000; $x++)
 {
  $start = microtime(true);
  $result = mysql_query("SELECT * FROM table_no_index WHERE x=17 OR x=53 OR x=74",$c);
  $ende = microtime(true);
  $dif = $ende-$start;

$start2 = microtime(true);
  $result2 = mysql_query("SELECT * FROM table_index WHERE x=17 OR x=53 OR x=74",$c);
  $ende2 = microtime(true);
  $dif2 = $ende2-$start2;

if ($dif2 < $dif) $mit_index_schneller++;
 }

echo 'Von '.$x.' Durchläufen war die Tabelle mit Index '.$mit_index_schneller.' mal schneller.';
?>

Ergebnis: "Von 1000 Durchläufen war die Tabelle mit Index 993 mal schneller."

Scheint also halbwegs eindeutig zu sein!

Gruß
Tommi