800.000 Datensätze sortieren - MySQL macht schlapp

Hallo,

ich habe in einer Artikeldatenbank ca. 800.000 Datensätze gespeichert. Dies will ich nun nach Datum sortieren…

Dazu lege ich eine 2. Tabelle an, danach wende ich folgendes SQL Statament an

insert into Artikeltemp select * from Artikel where Datum >= ‚$mysqldate‘ ORDER BY Datum, Zeit

Dieses bedudet für meinen Server fast den Tot, den er rechnet danach einige Stunden, also ist die Abfrage in Verbindung mit der großen Anzahl von Datensätzen doch etwas heftig …

naja weiß jemand vielleicht ne andere Lösung wie ich die Datensätze in der Tabelle Artikel nach Darum und Uhrzeit sortiert erhalte ?

Danke

Hat denn Deine temporäre Tabelle einen zusammengesetzten Index auf die Felder Datum, Zeit? Wenn nicht sollte es mit Index wesentlich schneller gehen.

Ohne Index muß die Datenbankengine im schlechtesten Fall beim Einfügen alle Datensätze durchsuchen. Das Einfügen aller Datensätze dauert dann in der Größenordnung n^2. Mit Index dauert es dagegen nur n*ln(n). Das macht sich halt bei großen Datenmengen drastisch bemerkbar (800000*800000 >> 800000*14).

Harald

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]