Welche Version und wie kann ich kostenlose MySQL -DBMs in kommerziellen Projekten verwenden? [abgeschlossen

StackOverflow https://stackoverflow.com/questions/7818582

Frage

Derzeit ist MySQL Community Edition Server 5.5.16 unter GPL. Dies bedeutet, dass es in Projekten verwendet werden kann, die auch Open -Source -Projekte sind. Unser Projektbudget ist sehr eng und wir müssen eine Lösung finden, um die MySQL Free Edition im kommerziellen Projekt zu verwenden. Ich habe mehrere Fragen:

1) Welche frühere MySQL-Version wäre solide und fehlerfrei genug, um in kommerziellen Projekten zu verwenden?

2) Über die Verwendung der aktuellen MySQL Community Edition Server 5.5.16 mit GPL: Wenn eine Projektsoftware-Architektur mit Unterstützung für das Einstecken vieler DBMSS ausgelegt ist, ist es legal, eine Projektsoftware unter Nicht-GPL-Lizenz zu haben? Ich meine, nehme an, die Software ist mit mehreren DBMS -Support ausgestattet und die Software wird unter kommerzielle Lizenz gestellt. Wenn der Kunde die MySQL -GPL -Version verwendet, verstößt er gegen die GPL -Lizenz?

3) Ich hörte einige negative Antworten darauf, dass PostgreSQL fehlerhaft und nicht optimiert war, um große Datensätze zu ändern und zu speichern. Der einzige Grund, warum es in einigen kleinen kommerziellen Projekten immer noch verwendet wird, ist, dass es kostenlos ist. Was sind Ihre Meinung dazu?

UPDATE: Außerdem planen wir mehrere Server, sodass auch eine Master-Slave-Replikation erforderlich ist.

UPDATE2: Ich habe von einem Fall gehört: Es wurde ~ 1 GB Postgreql db verwendet. Die Datenbank wurde stark mit Aktualisierungen verwendet, indem fast alle Daten geändert wurden. Das Problem war, dass die Datenbank alle 2,5 Monate ständig etwa zehnmal wuchs. Sie haben Postgresql 8.3 + CentOS verwendet. Außerdem wurde Autovacuum verwendet. Nachdem sie Datenbank abgeleitet haben, die alte zerstören, Datenbank erstellen und importieren konnten, konnten sie seine Größe um das 10 -fache reduzieren. Bestehende Beiträge (hier und hier) Zeigen Sie, dass dieses Problem auch in der neuesten PostgreSQL 9 -Version relativ ist. Ich würde es nicht als normales Verhalten nennen und ein solches Größenwachstum ist in unserem Fall nicht akzeptabel.

Update3: Vielen Dank für die Antworten. Alle Antworten sind relativ und nützlich für die Frage.

War es hilfreich?

Lösung

Die anderen Poster haben erwähnt, dass im Grunde genommen die Verknüpfung mit MySQL bedeutet, dass Sie das Projekt GPL oder eine andere Betriebssystemlizenz lizenziert haben. Wie auch immer...

OK, PostgreSQL speichert seine Daten in einem Datenspeicher, in dem MVCC und Mehrfachversionskontrolle unterstützt werden. Dies bedeutet auf einer einfachen Ebene, dass jede Transaktion einen Schnappschuss der Datenbank erhält, die von zu Beginn dieser Transaktion zusammenhängt, bis sie beginnt oder zurückrollt. Dies bedeutet, dass ein einzelnes Tupel zu einem bestimmten Zeitpunkt mehr als eine Live -Version in der Datenbank haben kann. Aufgrund der Art und Weise, wie MVCC in PGSQL implementiert wird, existieren diese beiden Versionen gleichzeitig im Datenspeicher. Schließlich werden alle bis auf die neuesten älter als die älteste laufende Transaktion und können von der DB wiederhergestellt und wiederverwendet werden. Der Prozess, der diese alten toten Tupel zurückerhält, wird als Vakuuming bezeichnet.

In 8.3 wurden die alten toten Blöcke mit einem gemeinsam genutzten Speichersegment mit dem Namen Free Space Map im Auge behalten. Wenn entweder die Staubsauger nicht aggressiv genug sind oder wenn Ihnen der freie Speicherplatz keinen Platz mehr hat, kann die Datenbank tote Tupel schneller machen als sie wiederherstellen könnten (Vakuum) oder sich an sie (Freiraumkarte).

Mit 8.4 wird die freie Speicherkarte für den Benutzer wartungsfrei, da sie auf der Festplatte in .fsm -Dateien gespeichert ist. Das Problem mit Vakuum besteht jedoch noch. Autovacuum ist so eingestellt, dass es nicht zu aggressiv ist, um bei der Installation nicht so etwas wie einen Laptop oder einen kleinen Server zu töten. Bei größeren Maschinen mit viel IO-Fähigkeit wie einem Server mit 16 SSDs in einem RAID-10-Array können Sie die Aggressivität von Autovacuum ankurbeln und mit einigen ziemlich verrückten TPS-Raten Schritt halten. Sie können über lange Zeiträume auf einem Server 1.000 bis 3.000 Transaktionen pro Sekunde mit einem aggressiven Autovakuum und einem schnellen Hardware -RAID -Controller mit vielen Festplatten erhalten. TPS -Zahlen, die sich 10.000 nähern, sind mit teureren und größeren Servern möglich. Während der Wartung von 100er Verbindungen.

TL; DR: 8.3 ist alt und definitiv einige Probleme. 8.4 und Up haben eine bessere Erholung des freien Speicherplatzes, benötigen aber dennoch aggressiven Autovac, um mit einer schweren Last Schritt zu halten.

Andere Tipps

3) Ich hörte viele negative Antworten darüber, dass PostgreSQL fehlerhaft und nicht optimiert war, um große Datensätze zu ändern und zu speichern. Der einzige Grund, warum es in einigen kleinen kommerziellen Projekten immer noch verwendet wird, ist, dass es kostenlos ist. Was sind Ihre Meinung dazu?

Das ist fud. PostgreSQL ist ein vollständig vorgestellter Hochleistungs -RDBMs, der in mehreren großartigen Bereitstellungen verwendet wird.

2) Über die Verwendung der aktuellen MySQL Community Edition Server 5.5.16 mit GPL: Wenn eine Projektsoftware-Architektur mit Unterstützung für das Einstecken vieler DBMSS ausgelegt ist, ist es legal, eine Projektsoftware unter Nicht-GPL-Lizenz zu haben? Ich meine, nehme an, die Software ist mit mehreren DBMS -Support ausgestattet und die Software wird unter kommerzielle Lizenz gestellt. Wenn der Kunde die MySQL -GPL -Version verwendet, verstößt er gegen die GPL -Lizenz?

Sobald Sie mit einer GPL-lizenzierten Bibliothek verknüpfen, ist die gesamte Codekörperung unter der GPL lizenziert. Oracle macht an Ausnahme Nur für andere kostenlose Lizenzen.

3) Ich hörte viele negative Antworten darüber, dass PostgreSQL fehlerhaft und nicht optimiert war, um große Datensätze zu ändern und zu speichern. Der einzige Grund, warum es in einigen kleinen kommerziellen Projekten immer noch verwendet wird, ist, dass es kostenlos ist. Was sind Ihre Meinung dazu?

rofl

Du machst Witze! Reiner Fud und sonst nichts.

Wir haben ein paar TB Daten in einer PostgreSQL -Datenbank und sie wächst immer noch etwa 200 GB pro Monat. Keine Fehler, keine Probleme, nur gute Leistung. Auch bei 500 gleichzeitigen Benutzern überhaupt keine Probleme. Überprüfen Sie die Mailingliste, um die Fehler zu zählen und zu sehen, wie schnell diese gelöst werden. Seien Sie nicht überrascht, wenn es innerhalb von Stunden eine Lösung gibt. MySQL kann daraus lernen.

http://archives.postgresql.org/pgsql-bugs/

Ich hatte das gleiche Problem. Früher habe ich MySQL in kommerziellen Projekten verwendet. Aber nachdem Oracle Änderungen übernommen und Lizenzrichtlinien übernommen und nach anderen Optionen gesucht habe, darunter SQL-Express, DB2-Express, SQL-Lite, PostgreSQL

Ich werde nicht in die Vergleiche eingehen, weil es viele Informationen gibt. Aber postgresql ist bei weitem das beste in Bezug auf

a) Umgang mit großen Datensätzen

b) SQL -Standards

c) Inline -Dokumentation

d) Datenbankverbrauchsstatistik

Tatsächlich könnte ich ein Projekt über Nacht starten, ohne Gemeinkosten in Bezug auf Änderungen der SQL -Befehle oder der Dokumentation.

Da ich DOTNET unter Windows verwende, ist NPGSQL der einzige vertrauenswürdige Anschluss, der uns erschreckt.

Aber bisher war es absolut ein Kuchen, sich mit Postgresql 9.0 zu entwickeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top