Welche datenbank



  • Wie der titel schon vermuten lässt, bin ich auf der suche nach einer datenbank. Ich brauche kein client/server modell, sondern eine datenbankbibliothek. SQL-fähig. Die Lizenz sollte gpl (oder kompatibel) sein. Außerdem wird es nötig sein, die art der datenspeicherung anzupassen (da die meisten datenbanken ja cross-platform sind und sich die speicherug von daten zwischen posix/windows ja z.b. unterscheidet, glaube ich nicht, dass das so schwer ist). Die Datenbank sollte auch mit ein paar millionen Einträgen zurechtkommen. Hauptkriterien sind speed und unterstützung für blobs. Die speicherung in einer Datei wäre wünschenswert. So, nun weiß ich nicht so recht, welche datenbanklibrary ich nehmen soll. Sqlite? Embedded MySQL oder embedded firebird. Wie siehts bei denen mit der lizenz aus?
    Ich wäre für jeden rat dankbar, da ich ziemlich überfragt bin.



  • BerkleyDB



  • Die ist aber laut faq nicht sql-fähig.



  • Dann versuche mal SQLite, dies ist sogar kommerziell kostenlos nutzbar.



  • Hab ich ja schon erwähnt, ich bin mir nur nicht sicher, ob die auch mit großen datenmengen so gut zurechtkommt.



  • Trage doch mal spasseshalber die Datenmenge ein, mit der du rechnest, und anschließend kannst du dich immer noch entscheiden.



  • Hi,

    SQLite home page schrieb:

    Supports databases up to 2 terabytes (241 bytes) in size.

    keine Ahnung was für Daten du speichern möchtest, aber ich denke das sollte erstmal reichen.



  • Es geht ja nicht nur darum, wie viel gespeichert werden kann, sondern, ob die performance dann noch stimmt.





  • Das hängt von der Applikation ab.
    SQLite ist prima als kleine, schnelle Datenbank, kommt auch mit ein paar Millionen Einträge zu recht. Solltest Du aber komplizierte Abfragen haben, d.h. viele inner & outer joins, viele Bedingungen, wirst Du bei SQLite mehr händisch optimieren müssen (das muss *kein* Nachteil sein) als bei mySQL. Der Optimierer von mySQL ist deutlich besser.

    Wozu benötigst Du die "Cross-Plattform" Fähigkeit? Kopierst Du Deine großen Datenbanken zwischen verschiedenen Plattformen hin und her?
    Oder willst Du Dein Programm (mit Deiner einkompilierten Db!!) auf einem anderen Rechner laufen lassen, als die Daten tatsächlich liegen?
    Beides erscheint mir nicht sehr praktikabel...


Anmelden zum Antworten