Beschleunigung PostgreSQL Abfrage, wo Daten zwischen zwei Datumsangaben

Ich habe eine große Tabelle (> 50m Zeilen), die einige Daten mit einer ID und einem timestamp:

id, timestamp, data1, ..., dataN

...mit einem multi-Spalten-index auf (id, timestamp).

Brauche ich zur Abfrage der Tabelle, um alle Zeilen zu wählen, die mit einer bestimmten ID, wo der Zeitstempel wird zwischen zwei Datumsangaben, die ich bin derzeit dabei mit:

SELECT * FROM mytable WHERE id = x AND timestamp BETWEEN y AND z

Diese derzeit dauert über 2 Minuten auf einem high-end Rechner (2x 3 GHz dual-core-Xeons w/HT, 16GB RAM, 2x 1TB-Festplatten im RAID-0 -) und ich möchte wirklich, um ihn zu beschleunigen.

Habe ich gefunden dieser Tipp, die empfiehlt die Verwendung eines räumlichen Indexes, aber das Beispiel gibt es für IP-Adressen. Allerdings, die Geschwindigkeit zu erhöhen (436s, 3s) ist beeindruckend.

Wie kann ich diese mit Zeitstempel?

* Definieren high-end-Maschine? Wirklich... die 50-Millionen-Zeilen ist jetzt eine große Tabelle von den heutigen standards. * So, die Tabelle hat ID - wo ist der UNIX-timestamp? * Welche Indizes? Fehlende index plus crappy hardware (high-end + normal-discs) könnte zu diesen Ergebnissen.
Dual 3GHz Xeon Dual-cores mit HT, 16GB RAM etc. Die Tabelle (id, timestamp, data) mit einem multi-Spalten-index auf (id, timestamp).
NICHT high-end, mit allen Mitteln.... besonders bei als Sie nicht sagen nichts über die..... Scheiben, die sind der kritische Teil für jeden Datenbank-server. VIEL mor ethan, der CPU, oder der RAM. Was ist Ihre disc-layout?
Es ist ein desktop-PC, der kein server ist, und wird immer nur von einer person verwendet werden, auf einmal. Disc-wise, es hat 2x 1 TB Festplatten im RAID 0.
Ah, hier wir gehen. Mist IO-performance. Typische 1-TB-Laufwerke, dsktop, 7200 U / MIN. Raid 0 macht es ein WENIG besser, aber... naja... doppelt Mist immer noch Mist ist. Ich würde nicht sagen, das ist bis zu einem fast 50.000.000 Zeilen-scan, wenn Sie eine Tabelle Scannen, wird entschieden 😉

InformationsquelleAutor Roger | 2010-03-17

Schreibe einen Kommentar