PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welchen SQL Server für große binaries ??



sono
09.04.2005, 15:45
Welcher Opensource SQL server eignet sich am besten für eine reine Datenbank mit großen Binaries von sagen wir mal 5 bis 50 MB Größe .

Alles ander ist nebesächlich der Sever muss nur mit großen Binaries optimal umgehen können.

Soll ja server geben die da besser sind als andere.

Gruß Sono

oenone
09.04.2005, 21:01
Meine Empfehlung: PostgreSQL

PostgreSQL ist das weltweit fortschrittlichste Open Source RDBMS.. Für deine Anwendung bietet sie auch viele Möglichkeiten.

Auf Bald
oenone

TenBaseT
10.04.2005, 10:55
PostgreSQL ist das weltweit fortschrittlichste Open Source RDBMS..Hmm, das wenige was ich bisher hin Postgres gesehen habe, sah wirklich nicht schlecht aus. Trotzdem wäre ich mit solchen in den Raum geworfenen Statments sehr vorsichtig.

Ich arbeite hauptsächlich mit FireBird, habe aber keine Erfharungen was deine Anforderung angeht. Würde eigentlich nur ein Ausprobieren helfen. www.firebirdsql.org (http://www.firebirdsql.org)

Hans

oenone
10.04.2005, 12:12
Hmm, das wenige was ich bisher hin Postgres gesehen habe, sah wirklich nicht schlecht aus. Trotzdem wäre ich mit solchen in den Raum geworfenen Statments sehr vorsichtig.
nun ja... aber es stimmt... wenn du die open source rdbms vergleichst, wirst du auch zu dem schluss kommen.
postgresql ist so ziemlich die einzige open source datenbank, die oracle das wasser reichen kann.

zu seinen anforderungen stimme ich dir zu: es hilft nur ein ausprobieren.

auf bald
oenone

MadJoe
10.04.2005, 12:23
da hätt ich auch eine frage, wo wir gerade dabei sind... von postgreSQL hab ich natürlich schon mal was gehört, nur, wenn es praktisch fast oracle das wasser reichen kann und open source ist, wie kommt es dann, dass mysql die populärste open souce datenbank ist?

oenone
10.04.2005, 15:33
und weil mysql GPL-verseucht ist... die meisten leute hören GPL und denken fälschlicherweise GPL=Open Source=Freiheit=Gut...
und außerdem weil die meisten Webhoster mysql anbieten und nicht postgres.
für professionelle ansprüche ist mysql allerdings nicht zu gebrauchen.
zumal es mysql mit den SQL-Standards nicht so genau nimmt.

auf bald
oenone

hex
10.04.2005, 17:01
MySQL 5 soll aber auf dem richtigen Weg sein, was SQL-Kompatibilität angeht. Hab ich letztens in der iX gelesen :)

regards hex

TenBaseT
10.04.2005, 19:03
MySQL 5 soll aber auf dem richtigen Weg sein, was SQL-Kompatibilität angeht. Hab ich letztens in der iX gelesen :)

regards hex
Ooch, die sind doch schon seit Jahren auf dem richtigen Weg, immer ein bisschen mehr, ganz so wie M$ das vormacht. Schau dir mal die Meldungen zu den alten Releases an.

Aber hier ging es um die Frage, welcher Datenbankserver der Beste für die Aufgabe ist und nicht darum, warum es mit MySql vielleicht auch gehen könnte. Man verliert das Ziel aus den Augen.

Hans

sono
10.04.2005, 20:38
Momentan arbeite ich mit MySQL und Postgres wobei ich sagen muss das Postgres definitiv Meilen vor MySQL liegt was die Benutzung im Professionellen Bereich angeht.

Auserdem ist sie von den Lizensen her unkomplizierter.
Bei meinem Projekt laufen mehrer Server. Ein Server für eine Webaplication der Texte und kleine pics gespeichert hat.
Der läuft auf jeden Fall unter Postgres 8. Als leidgeplagter Student was Oracel angeht kann ich die Behauptung das Postgres Oracle das Wasser reichen kann von der Funktionalitäter her nicht ganz bestätigen, aber Postgres ist die am ehesten für Professinonelle Anwendungen geeignete Open Source Datenbank die dich ich kenne.

Ich bin mir für den zweiten Server allerdings nicht sicher ob MySql auf Grund seiner relativen Einfachheit her nicht geeigneter für große Binaries ist als Postgres .

Was sagt ihr dazu ??

oenone
10.04.2005, 21:11
das mit den Binaries solltest du wohl am besten einfach mal ausprobieren, nen benchmark für schreiben oder sowas ähnliches...
BLOBs (bei PgSQL OID) sind bei Postgres anders implementiert als bei anderen Datenbanken.. Soviel sagt zumindest mein PostgreSQL-Buch dazu. Inwiefern es sich unterscheidet steht da leider nicht drin.
Die Idee mit lo_import und lo_export sieht schon mal nicht schlecht aus.. Wie es bei MySQL oder anderen DBs aussieht kann ich nicht sagen, jedoch ergab eine kurze Recherche auf mysql.org:

The theoretical limit in MySQL 4.0 is 2G, however each blob requires generally to have 3 copies of it in the memory (stored in various buffers) so you need a lot of memory, if you have large BLOBs stored in MySQL. This is the reason, why the theoretical limit can be reached only on 64bit systems. The Practical limits are around some hundreds of megs per BLOB.
Bei PostgreSQL ist die Größe nur durch das Dateisystem und das Betriebssystem begrenzt, da die eigentlichen Daten der BLOBs außerhalb der Datenbank gespeichert werden.
Hierzu noch ein kleines Zitat:

Binary and Character Large Objects

MySQL: Binary: TINYBLOB, BLOB, MEDIUMBLOB, and LONGBLOB, differ only in the maximum
length of the values they can hold up to 2^32(4GB) bytes.
Character: The four TEXT types TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT correspond
to the four BLOB types and have the same maximum lengths and storage requirements.
Oracle: Binary:LONG RAW (2 GB), BLOB (4 GB) and BFILE (external storage, up to 4 GB) data types.
Character: LONG (2 GB) and CLOB (4 GB) data types.
PostgreSQL: Binary: Must be defined by user in CREATE TYPE; size is limited by max. row size.
BLOBs are saved in files outside tables, only OID of the BLOB is stored in PostgreSQL table.
Character: TEXT type (size limited by max. row size).
Quelle: http://www-css.fnal.gov/dsg/external/freeware/mysql-vs-pgsql.html

hoffe, das hilft dir weiter.

auf bald
oenone

sono
10.04.2005, 22:24
Ja das damit kann ich was Anfangen.

Thx .

Werde demnächst mal ein paar Datenbanken auf mit 200 GB Datensätzen füllen und dann mal schaun wie das Teil sich verhällt.

Schätze mal ich muss dann die Ergebnisse gleich Posten .

Gruß Sono.

ExRevel
11.04.2005, 10:21
Du wirst nicht umbedingt höhere Geschwindigkeiten erreichen wenn du die dinger direkt im Filesystem speicherst und dann erste die Infos über die Datei aus der Tabelle beziehst um dann auf das Filesystem zuzugreifen. Die Datenbank kann das schon schneller wenn du bei ihr direkt die Daten abfragst.

In welchem DBMS die sachen gespeichert werden muss man halt einfach von den Anforderungen abhängig machen. Wenn ich einfach nur einige Daten abspeichern will, mit ein paar Relationen und normalen Benutzerrechten, dafür setze ich nicht pgsql auf, da es in der Handhabung einfach komplizierter ist und in dem einfachen Abfragebereich meiner meinung nach auch mysql nicht ganz das wasser reichen kann. MySQL versucht andere wünsche zu erfüllen als PostgreSQL, also denke ich man sollte die beiden datenbanksysteme nicht so direkt vergleich wie es hier einige tun. wir haben in der firma diverse MySQL Server für durchaus professionelle nutzung. PostgreSQL wär einfach nur zu viel des guten. Man sollte halt abschätzen was man braucht und dann entscheiden das ist doch meist effizienter als einfach zu sagen pgsql ist "professioneller" das nehm ich :)

Soll kein loblied an mysql sein, ich nutze beide systeme sehr gerne... an den ergebnissen wär ich auch überaus interessiert sono...

ciao Exi

sono
11.04.2005, 18:23
Was die einfach nutzung von mysql angeht muss ich dir recht geben.

MySql ist von der Bedienung bzw beim coden schon etwas angenehmer als Postgres. Bei uns ist allerdings der Umfang der Datenbanken so groß das wohl Postgres der bessere Weg zu sein scheint. Nebenbei ist das am ende reine Gewöhnungssache.


Ich werde das mit dem speicherplatz als string in die Datebank speichern auch prüfen, bzw das hatte ich so oder so vor .

Allerdings wollte ich aus Gründen der Sicherheit die Daten in einer Datenbank haben , und diesen Weg auch wählen wenn die Performance Unterschiede zu vernachlässigen sind.

Ich poste wenn ich die Versuche hinter mir habe , kann aber ein wenig dauern.

Gruß Sono

chrisnolde
11.04.2005, 18:48
man könnte vielleicht auch dsa mal zu dem thema durchlesen

http://faq-php.de/q/q-db-blob.html

sono
11.04.2005, 20:13
Öhm , war nicht ganz uninteressant .

Aber auch nicht ganz das was helfen würde. Ich habe ja eine reine Datenbank für große blobs , also keine buntes mischen usw.
Auserdem geht der gute mensch davon aus das man die binaries als bilder in eine Webseite einfügen möchte was bei mir auch nicht der fall ist .

Trotzdem wars nicht uninteressant wie schon erwähnt .

Gruß Sono

chrisnolde
11.04.2005, 20:39
klar geht es da in erster linie um bilder... ist ja aus ner php faq und da sind bilder eben der häufigste blob ;)

aber danach geht er auch auf die generellen nachteile von blobs in dbs ein.

sono
12.04.2005, 16:14
Nein . nicht ganz.

Er geht darauf ein das MySql nich geeignet ist blobs zu speichern ,bzw es nicht ideal ist .

Aber als Informatikstudent weiß ich auch das es Datenbanken gibt die darauf spezialisiert sind große Objekte zu handeln , und so eine suche ich als open source .

Aber ich denke mal ich kann mir jetzt denken was passiert wenn ich meine 200 gb in die MySQL geblasen habe. Könnte lustig werden . :D
Dank dir bin ich dann nicht so enttäuscht wenn ichs ergebnis sehe :headup:

Gruß Sono

TenBaseT
12.04.2005, 20:18
Eine Anmerkung noch. Wenn du in Größenordnungen größer 100 GB denkst, dann ist es wohl unerlässlich, daß der DB Server die Fähigkeit besitzt, die Datenbank auf mehrere Partitionen zu verteilen. Ich weiß nicht, ob das Standard ist. FireBird / Interbase bieten diese Möglichkeit.

Hans

sono
12.04.2005, 21:59
Hm der Einwand hat was.

Allerdings meine ich gelesen zu haben das postgres das auch kann, zumindest die version 8.0 soll das können.

Werde mir mal firebird noch anschauen.
Ich komme mit Postgres noch nicht so 100% tig klar , ein paar abfragen habe ich noch nicht gefunden.

Dummerweise sind das die ersten Sachen die du bei MySQL beigebracht bekommst und bei Postgres hab ich nach nun 200 Seiten englischem Beipackzettel immernoch keine Ahnung wie ich mir die tabellen bzw datenbanken anzeigen lassen kann.

Wie ist den Firebird von der Bedienung her ?

Gruß Sono

TenBaseT
13.04.2005, 21:07
Bei uns läuft Firebird auf einem Linuxserver. Garfische Bedieneroberfläche unter Linux ist allerdings Fehlanzeige. Flamerobin möchte ich nur als Ansatz bezeichnen.

Ich mache die Datenbankerstellung von Windows aus. Dafür leiste ich mir den Luxus, IB Expert einzusetzen. Ein absolut erstklassiges Produkt. Ist sein Geld wert. Damit machst du fast alles. Datenbank administration, SQL Abfragen und Auswertungen, Userverwaltung (ausser User anlegen), Rechteverwaltung, export der Daten z. B. nach Excel, StoredProcedures, Views, und und und. Mit IBExpert ist die FB Administration zum Kinderspiel geworden.

Wegen deiner Pstgres Infos: Ich glaub die haben die Versteckt. Könnten sich hier (http://www.postgresql.org/docs/8.0/static/view-pg-tables.html) verbergen. Keine Garantie, weil ich postgresql nicht einsetze.

Hans

sono
13.04.2005, 21:39
:bounce:
Jup das habe ich gesucht

Thx

TenBaseT
14.04.2005, 20:45
Jup das habe ich gesuchtWas meinst du damit genau? Die Windowsprogramme zum adminstrieren?

Noch ein Nachtrag zum Thema Windows (obwohl das hier ein UNIX Board ist :devil: )

Installier den ODBC Treiber von FireBird und deine User können dierekt via ODBC Abfragen z. B. von Excel aus in das Worksheet einfügen. Dazu muss aber MS Query installiert sein. Dieses ist bei der MS Officeinstallation standardmäßig ausgeschaltet.

Hans

oenone
16.04.2005, 00:36
es gibt auch eine wunderbare manpage zu psql...

auf bald
oenone

sono
16.04.2005, 17:04
Hatte eher deinen link gemeint . Der in dem ich nachlesen konnte wie ich unter aderem meine datenbanken abfragen kann.

Jo , gibt sehr schöne manpages zu psql, ich kämpf mich grad durch die 1000 seitige doku , aber das was ich suche wäre erst ab seite 657 gekommen und ich war erst bei seite 223.

Weisch was ich meine.