You are not logged in.

  • Login

1

Wednesday, October 19th 2011, 1:34pm

PostgreSQL oder MySql vor- und nachteile?

Hi,

ich wollte einfach mal eine Diskusion zu den beiden SQL Datenbanken Starten um zu erfahren, was die vor- und nachteile der beiden ist.
Gibt es irgendwelche vorteile gegen über dem anderen oder ist das eigentlich vollkommen irrelevant, welche Datenbank man benutzt?


Gruß
Daniel

2

Wednesday, October 19th 2011, 2:30pm

Was mir direkt eingefallen ist,
wenn du unsauber codest und eine SQL-Inj hast, dann kann diese bei PostgreSQL erfolgreicher angwewandt werden ;)
Dann kann man in einer Query 2 Sachen machen .. z.B. alles auslesen und dann alles löschen :P

3

Wednesday, October 19th 2011, 2:42pm

Was mir direkt eingefallen ist,
wenn du unsauber codest und eine SQL-Inj hast, dann kann diese bei PostgreSQL erfolgreicher angwewandt werden ;)

bei mysql nicht? :huh:

4

Wednesday, October 19th 2011, 4:03pm

Mitlerweile kann man bei MySQL auch mit Transaktionen , Triggern und Procedures arbeiten, doch bei MySQL hört es bei SQL dann auch schon als zu verwendende Sprache auf.

PostgreSQL bietet wie die "Großen" (Oracle, IBM, MS) eine größere Auswahl an Sprachen an (PL/[pgSQL,perl,python,java,...]). Für den Ottonormalverbraucher ist das nicht stark zu beachten, doch grade für komplexere Abbildungen sind diese Möglichkeiten ein Ausschluskriterium von MySQL, da man hier nicht die Möglichkeit hat Businesslogik in die Datenbank auszulagern.

5

Wednesday, October 19th 2011, 8:20pm

Was mir direkt eingefallen ist,
wenn du unsauber codest und eine SQL-Inj hast, dann kann diese bei PostgreSQL erfolgreicher angwewandt werden ;)

bei mysql nicht? :huh:
Bsp.

mysql_query("Select * from news where id=".$id);

und dann einfach mal
?id=1; truncate news;
in der Url einfügen und bei PostgreSQL geht das halt bei MySQL würde er dir ein Fehler ausspucken.

6

Saturday, October 22nd 2011, 12:35pm

Was mir direkt eingefallen ist,
wenn du unsauber codest und eine SQL-Inj hast, dann kann diese bei PostgreSQL erfolgreicher angwewandt werden ;)

bei mysql nicht? :huh:
Bsp.

mysql_query("Select * from news where id=".$id);

und dann einfach mal
?id=1; truncate news;
in der Url einfügen und bei PostgreSQL geht das halt bei MySQL würde er dir ein Fehler ausspucken.
Also meinst du eine SQL injection? Aber sowas funktioniert doch auch bei mysql oder?

7

Saturday, October 22nd 2011, 1:11pm

Natürlich funktioniert das bei MySQL.
Aber keine zweite Abfrage.
Bei MySQL müsstest du mit "union select" oder "or 1=1" arbeiten.
Bei PostgreSQL kannst du das ganze einfach mit einer zweiten Query lösen.

8

Saturday, October 22nd 2011, 6:53pm

Okay also ist Mysql schonmal etwas sicherer.

Wie sieht es dann sonst so aus?
Stabilität und geschwindigkeit bei projekten mit sehr vielen Datenbank abfragen?

9

Sunday, October 23rd 2011, 10:41am

SQL Injection zieht als Argument nicht. An sowas ist der Client schuld.
Ansonsten sind beide DBMS recht gleich was die Features angeht. Ich würde mich da eher an Argumenten wie Verbreitung und Community Größe orientieren.

Was planst du überhaupt? Postgresql findest du bei den wenigsten Hostern. Wenn du also ein Produkt planst, dass sich der Kunde selbst installiert nimm MySQL.
Hier auch noch ein spannender Artikel: http://www.golem.de/1109/86513.html

10

Sunday, October 23rd 2011, 11:53am

Es ist auch kein Argument ;)
Nur habe ich nicht wirklich was mit PostgreSQL zutun und das war das einzige was mir in den Kopf geschossen ist.
Dennoch nice to know wie ich finde.

11

Sunday, October 23rd 2011, 1:13pm

Also für Kunden würde ich selbstverständlich nur MySql benutzen, diese experimente mit anderen Datenbanken usw. mache ich nur für Private Projekte. Ich interessiere mich halt dafür was nun vorteile bringen würde z.b bei großen Community Projekten?
Irgendwelche Argumente warum man PorstgreSQL ehr benutzen sollte als Mysql(also bei bestimmten Projekten) sollte es doch geben oder? ^^

Oder kann man sagen das es theoretisch vollkommen egal ist was man benutzt weil die sich eigentlich kein stück unterscheiden?

12

Sunday, October 23rd 2011, 1:55pm

Also für Kunden würde ich selbstverständlich nur MySql benutzen, diese experimente mit anderen Datenbanken usw. mache ich nur für Private Projekte. Ich interessiere mich halt dafür was nun vorteile bringen würde z.b bei großen Community Projekten?
Irgendwelche Argumente warum man PorstgreSQL ehr benutzen sollte als Mysql(also bei bestimmten Projekten) sollte es doch geben oder? ^^

Oder kann man sagen das es theoretisch vollkommen egal ist was man benutzt weil die sich eigentlich kein stück unterscheiden?

unterschiede gibts, sonst wurde die wohl kaum parallel existieren und auf dem markt erfolgreich sein.
lies doch mal die seiten durch
http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL
http://www.php-faq.de/q-db-vergleich.html

13

Saturday, October 29th 2011, 1:10am

Quoted

SQL Injection zieht als Argument nicht. An sowas ist der Client schuld.

Das möchte ich auch nochmal unterstreichen. SQL-Injection findet nicht auf Datenbankebene statt (sondern auf der Ebene von PHP, Java, etc.) und hat demnach auch nichts mit dem Thema zu tun. Nur weil die Syntax anders ist, ist eine Datenbank nicht sicherer als eine andere. Diese Behauptung ist schlicht falsch.


Zurück zum Thema

Hier ein netter Artikel der sich mit dem Thema beschäftigt:
http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL

14

Saturday, November 5th 2011, 10:54am

Ich denke, dass der Link von Torben relativ wichtig ist bei so einer Entscheidung: Oracle will Geld verdienen mit Open Source. Wenn du was zukunftssicheres haben willst solltest du nach meiner Auffassung (wenn du kein Geld für eine Datenbank ausgeben willst) die Datenbank nutzen, wo kein Milliarden Dollar Konzern dahinter steht, der irgendwie versucht aus dem Projekt Kohle raus zu schlagen oder das Porukt künstlich schlechter hält, um seiner eigenen Produktpalette nicht gefährlich zu werden.

Wenn du mit PHP oder mit JAVA arbeitest ist es aus der Sicht der Entwicklung so oder so relativ egal, da spricht man mit einer API und wie die letztendlich mit der Datenbank kommuniziert ist Sache der API.

Ich würde mal behaupten, dass sich 80% der Anwendungen so einfach sind, dass die darunterliegende Datenbank relativ egal ist, weil die sich von der Performance nur minimal Unterscheiden bzw. weil die Anforderungen an die Performance eine solche Abweichung zulassen. In der Regel kommt es auf das Ökösystem an, wo man sich integrieren muss oder ob man die freie Wahl hat.

15

Monday, January 2nd 2012, 5:56pm

Ich denke, dass der Link von Torben relativ wichtig ist bei so einer Entscheidung: Oracle will Geld verdienen mit Open Source. Wenn du was zukunftssicheres haben willst solltest du nach meiner Auffassung (wenn du kein Geld für eine Datenbank ausgeben willst) die Datenbank nutzen, wo kein Milliarden Dollar Konzern dahinter steht, der irgendwie versucht aus dem Projekt Kohle raus zu schlagen oder das Porukt künstlich schlechter hält, um seiner eigenen Produktpalette nicht gefährlich zu werden.


In Sachen langfristiges Denken: Oracles Umgang mit der Open Source Community

Social bookmarks