MySQL 5 vs. PostgreSQL 8.2
-
@User:
Wenn MySQL, dann sowieso InnoDB.Mir ist bereits bekannt gewesen, dass InnoDB einen "Row-Level-Lock" hat und MyISAM "Table-Lock". Aber da ich sowieso InnoDB verwenden werde (wegen Foreign Keys, ...) habe ich dieses Thema nicht erwähnt.
Mir kommt es hier eigentlich nicht darauf an, was möglichst viele bentuzen sondern was performanter ist bei großen Datenmengen.
@tntnet:
Wie du bereits gesagt hast, bietet eben PostgreSQL mehr Funktionalität, jedoch brauche ich nur die genannten. Ich werde mir mal die Benchmarks ansehen, danke.Ich werde sowieso die PDO API benutzen, die PHP 5 standardmäßig dabei hat.
-
Das finde ich immer wieder eine lustige Argumentation: "Mir reichen die Features, die Mysql bietet." Ich bekomme zwar eine bessere Datenbank mit der freieren Lizenz auch kostenlos. Es spricht eigentlich nichts gegen Postgresql, aber dennoch nehmen die Leute Mysql.
Das ist so, als wollte ich mit dem Auto von A nach B und darf mir aussuchen, ob ich einen 20 Jahre alten gebrauchten 50-PS-Golf nehme oder einen neuen 170-PS-Golf mit Klimaanlage und allem drum und dran. Beides kostenlos. Da ich ja nur von A nach B fahren will und ich das mit der alten Rostschüssel auch machen kann, nehme ich doch die.
-
ac!d schrieb:
Wenn MySQL, dann sowieso InnoDB.
Klar, aber vergiss dabei eines nicht: Für InnoDB gibt es keine freien Online-Binärbackuptools. Dh. Du musst entweder Dumps anfertigen (was dank nicht sperrender Reads (MVCC) grundsätzlich möglich, aber trotzdem vergleichsweise lahm ist, oder Du kaufst Dir eine Lizenz, was nicht ganz billig ist.
tntnet: MySQL hat schon eine gewisse Daseinsberechtigung für simple kleine Webanwendungen, aber eben nur deswegen, weil das Setup so einfach ist und es hochgradig auf Leseperformance für sehr einfache Anfragen optimiert ist. Sobald ein paar Schreibzugriffe mehr (bzw. Parallelität bei selbigen) oder irgendwelche sonstigen Features, die über die primitivsten MySQL-Fähigkeiten hinausgehen, genutzt werden, hat man Probleme. Natürlich lässt es sich selten vorher abschätzen, ob man nicht doch irgendwann mal mehr brauchen könnte...
Ich würde daher mittlerweile auch einfach fast immer (außer vielleicht für ganz simple CMS-Anwendungen für kleine Seiten oä) PostgreSQL verwenden.
-
nman schrieb:
tntnet: MySQL hat schon eine gewisse Daseinsberechtigung für simple kleine Webanwendungen, aber eben nur deswegen, weil das Setup so einfach ist und es hochgradig auf Leseperformance für sehr einfache Anfragen optimiert ist. Sobald ein paar Schreibzugriffe mehr (bzw. Parallelität bei selbigen) oder irgendwelche sonstigen Features, die über die primitivsten MySQL-Fähigkeiten hinausgehen, genutzt werden, hat man Probleme. Natürlich lässt es sich selten vorher abschätzen, ob man nicht doch irgendwann mal mehr brauchen könnte...
Ich würde daher mittlerweile auch einfach fast immer (außer vielleicht für ganz simple CMS-Anwendungen für kleine Seiten oä) PostgreSQL verwenden.Das ist doch genau das, worauf ich hingewiesen habe. Es gibt Anwendungsfälle, wo Mysql genausogut wie Postgresql ist. Es gibt Anwendungsfälle, wo Postgresql Mysql überlegen ist. Es gibt allerdings praktisch keine Anwendungsfälle, wo Mysql besser wäre.
Ist es einfach das, daß Mysql einfacher aufzusetzen ist? Wenn es darauf ankommt, dann würde ich Sqlite bevorzugen, was noch leichter ist. Sqlite unterstützt keine Authentifizierung, die bei Webanwendungen sowieso keine Rolle spielt, da der Client sowieso immer der Webserver ist.
Mich würde jetzt wirklich mal interessieren, warum ihr euch für Mysql entschieden habt.
-
MySQL ist sehr leicht aufzusetzen, zu administrieren und für simple Anwendungen, bei denen viele primitive Leseanfragen geschickt werden, die performanteste Lösung. Die MySQL-Volltext-Indizes sind insbesondere für mittelgroße Tabellen auch etwas performanter, als die der Konkurrenz.
-
Für Backups benutze ich für MySQL "Navicat for MySQL".
Dies eine Desktop-Anwendung (verbinde mich dann extern auf den MySQL Server). Das Tool kann nicht nur Backups machen sondern auch Tabllen erstellen, ... (wie phpMyAdmin nur besser bzw. mehr Funktionalität und nicht im Web).Das ist eine gute Frage warum MySQL so berühmt ist.
Ich habe auch mit MySQL angefangen. Warum? Weil es dazu sehr viele Tutorials gibt und eine gute Dokumentation (wenn die Dokumentation von PostgreSQL auch nicht schlecht ist, die von MySQL finde ich besser).Ich denke auch, dass oft MySQL verwendet wird weil es einfacher ist (eben weil es weniger Funktionen hat). Die Funktionen von früher haben eben für kleine Websites gelangt und dadurch an Beliebtheit gewonnen. Neue Programmierer haben sich dann der starken Verbreitung (bzw. vielen Hilfen) angeschlossen.
Eine kleine Website braucht ja auch nicht viele Datenbanken Funktionen.Ich habe dann mit Oracle gearbeitet und gesehen, dass MySQL wirklich kaum Funktionen anbietet. Doch mit MySQL 5 ist das ja jetzt wesentlich besser geworden.
Ein Vorteil von MySQL sind vielleicht die verschiednen Datenbank Engines wie MEMORY, MERGE, ... die PostgreSQL nicht bietet. Jedoch ist dies für kleine Website nicht relevant.
-
ac!d schrieb:
Für Backups benutze ich für MySQL "Navicat for MySQL".
Also machst Du im Wesentlichen Dumps. Das wird bei größeren Tabellen richtig schmerzhaft werden; insbesondere wenn oben genannte Szenarien eintreten.
Ich habe dann mit Oracle gearbeitet und gesehen, dass MySQL wirklich kaum Funktionen anbietet. Doch mit MySQL 5 ist das ja jetzt wesentlich besser geworden.
Nicht wirklich. Natürlich kann MySQL jetzt mehr, aber das ist auch fast alles ziemlich dreckig und inkonsistent umgesetzt und manches funktioniert immer noch überhaupt nicht.
Ein Vorteil von MySQL sind vielleicht die verschiednen Datenbank Engines wie MEMORY, MERGE, ... die PostgreSQL nicht bietet. Jedoch ist dies für kleine Website nicht relevant.
Naja, praktisch sämtliche Funktionalität lässt sich in größeren anderen DBMS (wie eben Postgres) auch abbilden, nur eben auf andere Art und Weise.
-
Ich habe mysql verwendet weil es ausreichte und selbst mit INSERT/UPDATES/SELECT und das sehr viele (> 120/SEC) auf Linux noch sehr schnell war. Auch Replikation war sehr einfach und gut. Ein INSERT/UPDATE/MASTER und > 1 SELECTSERVER. Und das in echtzeit. Habe aber jetzt MSSQL 2005 und ist kein vergleich mehr.
Wenn die DB > 4 GB mit Tabelle > 2.000.000 Datensätzen wird ist es schon merklich schneller bei sehr vielen schreib- und lesevorgängen.
Und Replikation hat sich bei 2005 sehr viel getan und läuft perfekt.
Selbst die Sicherung mit Backupexec und Wiederherstellung dauert nur wenige Minuten.
Ist natürlich für Privat dann nicht mehr zu bezahlen aber wenn es um Verfügbarkeit und dadurch auch Geld geht braucht man das dann.
Hier geht es ja dann auch weiter mit Cluster u.s.w.
-
@nman: Ja da kann man Dumps machen (SQL Anweisungen in einer Datei) aber auch Datenbank Backups, die in einem eigenen Navicat Dateiformat gespeichert werden.
Ja klar kommt MySQL nicht an die Funktionen von Oracle ran. Ich meinte nur es hat sich verbessert mit Triggers, Views, Stored Procedures, ...
Es gibt ja auch die Express Varianten von Oracle, DB2 und MSSQL, wobei alle recht stark die Hardware begrenzen. DB2 9 Express-C hat da noch die meisten Hardwarefreiheiten.
-
ac!d schrieb:
@nman: Ja da kann man Dumps machen (SQL Anweisungen in einer Datei) aber auch Datenbank Backups, die in einem eigenen Navicat Dateiformat gespeichert werden.
Ist und bleibt trotzdem ein Dump, auch wenn das Format ein bisschen ein anderes ist.
Es gibt ja auch die Express Varianten von Oracle, DB2 und MSSQL, wobei alle recht stark die Hardware begrenzen. DB2 9 Express-C hat da noch die meisten Hardwarefreiheiten.
Oder man nimmt gleich Postgres. (Ja, natürlich haben die Express-Versionen auch ihre Vorteile, aber im Regelfall fährt man mit Postgres schon ziemlich gut.)
-
tntnet schrieb:
Mich würde jetzt wirklich mal interessieren, warum ihr euch für Mysql entschieden habt.
"Dafür entschieden" hab ich mich nicht.
Es ist eine Entwicklungsplatform wie SQLite für mich.Deiner Einschätung zu MySQL vs Postgresql kann ich fast voll zustimmen!
Mit einer Ausnahme - ein ERD Tool für Postgres fehlt mir unter Win ( und eigentlic auch unter Unix)
ERWin & Co. - Teuer und gefallen mir alle nicht mehr so recht
Eclipse - Soll via JDBC gehen; habe ich aber nicht verstanden und schneckt imoDBDesigner4 klappt aber unter Win und Unix mit MySQL.
Via ODBC komm nicht so mit Postgres arbeiten wie ich das möchte.
Ausserdem ist es sehr mähsam DBDesigner erstmal Postgrestypen beibringen zu müssen.Wenn Postgres sauber eingebunden wäre oder ein anderes Tool würde ich sofort "umziehen".
Grüsse
*this