Welches DB System?
-
Hi,
Ja wegen den Zugriffen möchte ich mysql nicht verwenden, weil auf dem Server viele PHP Scripte von mir laufen und schon genug Zugriffe machen.
Eine DB selber machen, bin ich sehr Interresiert, leider hab ich keine ahnung wie man sowas realisiert gibt dazu ein gutes Tut?MFG ReduX
-
Kommt auch darauf an, was für ein Server das ist, also Leistung der CPU und Arbeitsspeicher.
So langsam ist MySQL nämlich nicht, die richtige Hardware vorausgesetzt hat das ordentlich Dampf.
gruß
Martin
-
Brauchst du wirklich ne DB oder reichen nicht ein paar (Hash)maps und Strukturen? Wird sehr wahrscheinlich schneller sein, als immer Datenbankanfragen auszuwerten.
-
-
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