Auf PostgreSQL umsteigen (von MySQL)?
-
Hi Leute, und zwar hab ich eine Datenbank, die innerhlab von 3 Tagen 1mio daten in die Datenbank einspeisen soll. Mom. hab ich testweise 1.7 mio Datensaätze in meiner MySQL Datenbank. Das Problem ist, dass die performance sehr zu wünschen lässt.
Die Frage, hat jemand erfahrungen mit einem Umstieg - lohnt es sich? Die Datenbank wird vermutlich dann innerhalb einiger Woche ein 20-50 GB an daten haben, daher Frage ich
Vielleicht kennt jemand ein paar Performance Docs in diesem Bereich.
Würd emich über ein paar Antworten freuen
Gruß JayJay :xmas1:
-
Hallo,
ich habe bei meinem letzten Projekt die DB von MySQL auf Postgres umgestellt.
Ich hatte ca. 1mio Datensätze in einer Tabelle und brauchte schnelle Queries. Und viele davon. Teilweise auch in größeren Mengen. Die Schreibperformance ist egal.
Leider konnte ich bei MySQL5 mit MyIsam und InnoDB eine subjektiv schlechte Performance beobachten, die immer schlechter wurde je mehr Daten in der DB waren.Habe dann auch PostgresSQL gewechselt, weil ich mir eine bessere Skalierung erhoffte.
Mein persönlicher Eindruck ist, dass Postgres in der Tat besser skaliert, aber nicht unbedingt schneller ist als MySQL. Die Performance wenn man mit mehreren Threads auf die DB zugreift ist definitiv höher. Die Lesezugriffe bleiben auch bei größeren Datenmengen recht konstant.
Ich würde, unabhängig davon welche DB schneller ist, weiterhin Postgres einsetzen. Das Produkt wirkt einfach wesentlich reifer und es hat wesentlich mehr Features als MySQL. Außerdem stürzen die GUI Tools nicht dauernd ab.
Just my 2 cents
-
Super, erstmal vielen Dank für dein komment
Ich bin gerade dabei auf postgreSQL zu wechseln. Ich werde wenn ich ein paar zahlen hab, diese hier posten.
-
Postgres skaliert vor allem mit der Anzahl von CPUs viel besser als MySQL, sollte beinahe linear sein. Und da man mittlerweile ja überall zumindest Multicore-CPUs einsetzt, wirkt Postgres plötzlich häufig deutlich performanter als MySQL.
-
Bei PSQL habe ich auch die Gewissheit, dass ich zukünftige datentechnische Optimierungen auch in der Tat umsetzen kann. Z.b. durch Triggers, Stored Procedures, Views, komplexe Queries usw..usw...
-
JayJay1 schrieb:
Die Frage, hat jemand erfahrungen mit einem Umstieg - lohnt es sich?
Ja, bei einem Projekt gab's einen Bug in MySQL, so daß wir dann schnell umgestiegen sind (wir hatten es sowie so vor). Die Standardeinstellungen für PostgreSQL sind eher konservativ, so daß wenig RAM verbraucht wird. Da kann man noch optimieren.
Was das RDBMS selbst anbelangt. Wenn möglich nie wieder MySQL, das ist mein persönliches Fazit. MySQL hat so schön viele Tabellentypen, aber kein Tabellentyp kann wirklich überzeugen. Entweder man hat einen ACID Typen (InnoDB) oder einen schnellen Typen (MyISAM), aber nie beides zusammen. Ein optimiertes PostgreSQL steht einer DB mit MyISAM in der Geschwindigkeit kaum nach. Bei komplexeren Anfragen ist PostgreSQL erfahrungsgemäß eh schneller.
Der einzige Punkt an dem man sich umgewöhnen muß beim Wechsel MySQL -> PostgreSQL: PostgreSQL funktioniert wie ein echtes RDBMS mit Sequenzen und man muß sich die ID fürs Einfügen, wenn man sie noch braucht, aus der passenden Sequenz holen und kann sie nicht nachher erfragen.
-
[quote="~john"]
JayJay1 schrieb:
[...]
Der einzige Punkt an dem man sich umgewöhnen muß beim Wechsel MySQL -> PostgreSQL: PostgreSQL funktioniert wie ein echtes RDBMS mit Sequenzen und man muß sich die ID fürs Einfügen, wenn man sie noch braucht, aus der passenden Sequenz holen und kann sie nicht nachher erfragen.SELECT currval('tablename_id_seq')
^ Nicht threadsicherer Code, um LAST_INSERTED_ID() von MySQL nachzubilden.
-
Ich merke bereits den deutlichen Performance unterschied. PostgreSQL lässt meine Processoren (im gegensatz zu MySQL) schön glüen
.
-
~john schrieb:
JayJay1 schrieb:
Die Frage, hat jemand erfahrungen mit einem Umstieg - lohnt es sich?
Ja, bei einem Projekt gab's einen Bug in MySQL, so daß wir dann schnell umgestiegen sind (wir hatten es sowie so vor). Die Standardeinstellungen für PostgreSQL sind eher konservativ, so daß wenig RAM verbraucht wird. Da kann man noch optimieren.
Kleine Frage, gibt es dazu ein paar gute Tuts, wie ich die Performace steigern kann?
Hab einen Server 4 CPUs, 8 GB Ram, möchte dass die soweit ausgelastet werden
-
JayJay1 schrieb:
Kleine Frage, gibt es dazu ein paar gute Tuts, wie ich die Performace steigern kann?
Außer allgemeinen Hinweise kann ich da nicht sonderlich weiterhelfen. Dafür gibt's DB Admins.;)