Welches DB System?
-
-
ReduX schrieb:
...
Eine DB selber machen, bin ich sehr Interresiert, leider hab ich keine ahnung wie man sowas realisiert ...Naja, dann dürfte allerdings entweder Performance/Stabilität für Dich nicht mehr das Kriterium oder MySQL doch die bessere Alternative sein....
Es ist höchst fraglich (bis grenzenlos unwahrscheinlich), dass Du als Anfänger ein DB-System entwickelst, das schneller und stabiler als MySQL ist. In solchen Teilen steckt eine Menge Grips drin, den die Leute sich nicht nur über ein Online-Tutorial angelesen haben.
Ist nicht böse gemeint, sondern soll nur bei der Wahl Deines weiteren Vorgehens helfen. Ich würde an Deiner Stelle auf jeden Fall erst einmal ein bestehendes DB-System installieren - selbst wenn Du später (z.B. zu Lernzwecken) selbst eines schreiben willst, helfen Erfahrungen mit anderen Produkten immens.Gruß,
Simon2.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Datenbanken verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Was sollen denn nun für Sachen drin gespeichert werden, und greift nur die eine (deine) Anwendung drauf zu?
-
Also eine Datenbank selbst zu programmieren ist sicherlich interessant. Aber bestimmt nur performance freundlich :p
-
Hi,
Also die Tabelle hab ich mir so vorgsetellt:
nickname(bis zu 20 Zeichen),channel(nur eine id, wird nicht größer als 50 werden),socketid(die Socket id jedes Users).
Und da halt max. 1500 Datensätze.
Auf dem Server wo es später laufen wird ist ein Vserver ich habe 1/50 der CPU und shared RAM (ich weiß ist nicht das beste). Der Anbieder rückt leider nicht mit den Ram oder CPU daten raus aber bis jetzt scheint der Server schnell zu sein.
Will jedoch auf Mysql verzichten, weil die homepages trotz meines Programmes noch schnell laufen sollen. Die Lösung mit den Hashmaps werde ich mal genauer anschauen, da das Gebiet neuland ist muss ich mich da jetzt alerdings erst mal einlesen.MFG ReduX
-
Ich würde im Programm an sich einfach einen Array aus der stdlib
benutzen. Für max 150 kbyte eine eigene Datenbank aufsetzten fände ich etwas
umständlich.
-
Hi,
Danke für deine Antwort.
Mache es nun mit arrays!MFG ReduX
-
Arrays?
Schau dir mal std::map an, das Ding ist extra für Datenbank-artige Datenhaltung gedacht!
-
@Artchi: Bitte erwähne keine Binärbäume im Zusammenhang mit Datenbank *schauder*
Map ist im besten Fall vielleicht noch als Index-Struktur zu gebrauchen.
MfG SideWinder
-
Damit kanns wieder zurück nach C++. :p
-
SideWinder schrieb:
@Artchi: Bitte erwähne keine Binärbäume im Zusammenhang mit Datenbank *schauder*
Map ist im besten Fall vielleicht noch als Index-Struktur zu gebrauchen.
MfG SideWinder
Kannst Du das auch begründen? Ich habe in einer std::map einen Schlüssel und einen zugehörigen Wert, der auch eine Klasse mit mehreren Werten sein kann. Das kann doch durchaus als in-memory-Datenbanktabelle benutzt werden.
-
(Doppelpost aufgrund von http-timeout gelöscht)
-
tntnet schrieb:
Kannst Du das auch begründen? Ich habe in einer std::map einen Schlüssel und einen zugehörigen Wert, der auch eine Klasse mit mehreren Werten sein kann. Das kann doch durchaus als in-memory-Datenbanktabelle benutzt werden.
Reicht dir ein "heutzutage gibt es kein brauchbares DBMS, dass seine Daten in einem Binärbaum ablegt"? Ansonsten die Standardseite: http://en.wikipedia.org/wiki/Database_storage_structures (warum wird dort wohl kein Binärbaum erwähnt ;)) sowie http://en.wikipedia.org/wiki/B-tree
MfG SideWinder
-
SideWinder schrieb:
tntnet schrieb:
Kannst Du das auch begründen? Ich habe in einer std::map einen Schlüssel und einen zugehörigen Wert, der auch eine Klasse mit mehreren Werten sein kann. Das kann doch durchaus als in-memory-Datenbanktabelle benutzt werden.
Reicht dir ein "heutzutage gibt es kein brauchbares DBMS, dass seine Daten in einem Binärbaum ablegt"? Ansonsten die Standardseite: http://en.wikipedia.org/wiki/Database_storage_structures (warum wird dort wohl kein Binärbaum erwähnt ;)) sowie http://en.wikipedia.org/wiki/B-tree
MfG SideWinder
Eigentlich nicht. Ein DBMS hält seine Daten auf der Festplatte, wo das Zeitverhälten ein anderes ist, als im Arbeitsspeicher. Dem Arbeisspeicher ist es weitestgehend egal, wenn ich immer kleine Stückchen mal hier und mal da lese. Für eine Festplatte ist es besser, wenn ich meine Schlüssel auf grössere Cluster verteile. Ein hin und her Springen zwischen den Sektoren ist weitaus teurer, als serielles Lesen.
Eine andere Sache ist, daß der Standard für std::map keinen binären Baum vorschreibt. Man kann einen std::map auch anders implementieren. Hauptsache die algorithmische Komplexität zeigt logarithmisches Verhalten.
-
ein B+tree ist doch eigentlich ein B-tree, nur für festplatten angepasst.
im hauptspeicher ist der B+tree doch langsamer als ein B-tree, deshalb ist es doch logisch das die map einen B-tree nutzt.und dann kann man schon eine map mit einer hauptspeicher db vergleichen.
finde ich vollkommen akzeptabel.jenz
-
Ich geh mal davon aus, dass du mit B-tree einen binary tree meinst?! Ja, im Hauptspeicher ja, aber Datenbanken haben es so an sich, dass sie persistent sind.
Sonst könnte ich auch sagen, hey, hab einen String als char-Array, also ist für diese Mini-Mini-Datenbank ein Array die beste Datenstruktur
MfG SideWinder
-
Mir geht es um diesen Beitrag:
SideWinder schrieb:
@Artchi: Bitte erwähne keine Binärbäume im Zusammenhang mit Datenbank *schauder*
Map ist im besten Fall vielleicht noch als Index-Struktur zu gebrauchen.
MfG SideWinder
Wenn du da rumschauderst, dann ja bitte mit vernünftigen Gründen.
Binärbäume und Datenbanken gehören eben eng zusammen. Und da kann man die auch zusammen nennen.
Nur weil Datenbanken spezialisierte Binärbäume einsetzen muss man da nicht so einen spitzfindig sein.jenz
-
Was heißt "spezialisierte Binärbäume"? Ein B-Baum ist kein Binärbaum, auch kein spezieller Binärbaum. Der Clou am Binärbaum, ist dass er immer genau 2 Nachfolger hat.
MfG SideWinder
-
okay, da habe ich mich falsch bzw. verkehrt herum ausgedrückt.
ein binärbaum ist ja im grunde ein spezialisierter/eingeschränkter b-baum.
aber es hat wahrscheinlich alles mit einem binärbaum angefangen, den hat man dann um mehrere nachfolger erweitert und dann hat man die daten in die blätter ausgelagert.
und das sind nur zugeständnisse an gegenbenheiten des speichermediums.jenz