wie würdet ihr das machen?
-
welche Filtermöglichkeiten?
z.B.: "select blah from blah where blah = blah" ??
So steppt ich doch genauso alle Datensätze durch oder nicht?
-
Petommy schrieb:
So steppt ich doch genauso alle Datensätze durch oder nicht?
Nein, so kann die Datenbank Indizes und was weiß ich noch benutzen. Ich bin ziemlich sicher, dass die Datenbank ihre Daten schneller durchsuchen kann als du.
-
Vielleicht schneller als ich, aber immernoch viel zu langsam für meine Anforderung. Das hab ich bereits realisiert. Viel zu langsam ;.)
Hast du schon mal 50 Mil. Datensätze durchsucht und nach 1 Sekunde eine Antwort bekommen?
Was haltet ihr von der Idee alle Datensätze in eine Multimap zu klatschen und über find() zu suchen? Der Cache ist doch um ein vielfaches schneller als jedesmal ein Zugriff auf die Platte zu machen....
Eine Multimap ist intern als AVL-Baum aufgebaut und somit garantiert sehr schnell.Oder stoß ich da auf Probleme die mir im Moment nicht bewusst sind?
-
Ja, erstens ist selbst die Suche in einer multimap nicht SOO schnell - und zweitens dürfte bei 50 Mio. Einträgen dein RAM in die Knie gehen.
-
Ich glaube nicht das das in den Speicher passt.
-
Petommy schrieb:
Hast du schon mal 50 Mil. Datensätze durchsucht und nach 1 Sekunde eine Antwort bekommen?
Die Anzahl der Datensätze ist doch völlig wurscht, wenn du einen Index vorbereitet hast.
-
Petommy schrieb:
...Hast du schon mal 50 Mil. Datensätze durchsucht und nach 1 Sekunde eine Antwort bekommen?
...Wenn der Suchbegriff im Index liegt, dann geht die Suche ganz sicher schneller
als 1 Sekunde.Zumindest wenn man kommerzielle Datenbank wie Oracle, DB2 oder SQL-Server
verwendet.
-
ich bekomm als Suchkriterium z.B. einen Namen oder ein Geburtsdatum.
In der Datenbank ist der Schlüssel eine id.
Ich benutze eine Informix DB.MFK: Wieso sollt ich suchen müssen, wenn ich den Index kenn?? Ich kenn den Index nicht.
-
Wenn du keine Ahnung hast, lass am besten die Finger davon.
-
tolle aussage!!
-
Petommy schrieb:
MFK: Wieso sollt ich suchen müssen, wenn ich den Index kenn?? Ich kenn den Index nicht.
Mit "Index" meint man bei Datenbanken keine "Ordnungsnummer" eines Datensatzes, sondern das hier: http://de.wikipedia.org/wiki/Datenbankindex
-
Petommy schrieb:
ich bekomm als Suchkriterium z.B. einen Namen oder ein Geburtsdatum.
In der Datenbank ist der Schlüssel eine id.
Ich benutze eine Informix DB.Kleiner Tip: Die meisten Datenbanken kann man so einstellen, daß sie zu einer beliebigen Spalte eine Indexstruktur aufbauen können.
MFK: Wieso sollt ich suchen müssen, wenn ich den Index kenn?? Ich kenn den Index nicht.
"Index" ist in dem Fall etwas mehrdeutig
In einer Datenbank bezeichnet man damit eine Hilfsstruktur, mit der die Suche beschleunigt werden kann (siehe Wikipedia).
-
hmmm, ja, aber, ähm... bin momentan sehr verwirrt...
trotzdem thaanx -> MFK
-
In Deinem Fall willst Du auf der Datenbank Indices für den Geburtstag und den Namen erstellen und dann danach suchen
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.