Daten durchsuchen

LL0rd

Erfahrenes Mitglied
Hallo Leute,

ich habe gerade ein kleines Problem. Für ein C# Programm bin ich gerade dabei, eine Datenbank zu entwickeln. Die Datenbank soll die Daten, die ich ihr übergebe, speichern und das heraussuchen von Informationen aus der Datenbank beschleunigen. Soweit zum Background.

Und nun zum eigentlichen (momentanen) Problem. Die Suchabfragen an die Datenbank werden in der Form sein, dass ich alle Objekte suche, deren x (Float)Wert zwischen zwei weiteren Floats liegt. Wie mache ich das? Da kann ich keinen Index anlegen oder ähnliches. Derzeit gehe ich alle Objekte durch und untersuche diese. Habe somit einen Aufwand von O(n). Wünschenswert wäre aber ein Aufwand von O(1).

Eine Idee, die ich hatte, war das ganze mit einer randomisierten Skip Liste zu implementieren. Da hätte ich einen Aufwand von O(log n). Aber vll. habt Ihr noch andre Ideen.
 
Hallo LL0rd,

die Abfrage, die du an die Datenbank sendest schränkst du mit Bedingungen (where-Klausel) schon so ein, das du nur die gewünschten Daten bekommst.

Was für eine Datenbank nutzt du?
 
Also die Sache ist die.......

Meine Software soll in möglichst kurzer Zeit eine Produktion abarbeiten. Während der Produktion wird auf die Datenbank permanent zugegriffen, etwa 100.000 Mal. Deshalb kann ich keine Datenbank als externes Programm verwenden. Der Overhead wäre da viel zu groß.

Die Datenbank ist derzeit eine Hash Map, die Objekte werden immer im Speicher gehalten.
 
Zurück