商用プロジェクトで無料のMySQL DBMSを使用する方法は何ですか? [閉まっている

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

質問

現在、MySQL Community Edition Server 5.5.16はGPLの下にあります。これは、オープンソースプロジェクトであるプロジェクトでも使用される可能性があることを意味します。当社のプロジェクト予算は非常に厳しく、商用プロジェクトでMySQLフリーエディションを使用するソリューションを見つける必要があります。いくつか質問があります:

1)以前のMySQLバージョンは、堅実で、商業プロジェクトで使用するのに十分なバグのないものですか?

2)現在のMySQL Community Edition Server 5.5.16を使用することについてGPL:プロジェクトソフトウェアアーキテクチャが多くのDBMSを接続することをサポートして設計されている場合、非GPLライセンスの下でプロジェクトソフトウェアを持つことは合法ですか?つまり、ソフトウェアが複数のDBMSサポートで設計されており、ソフトウェアが商用ライセンスの下に置かれているとします。クライアントがMySQL GPLバージョンを使用することを選択した場合、GPLライセンスに違反しますか?

3)PostgreSQLがバギーであり、大量のデータセットを変更および保存するために最適化されていないという否定的な返信を聞いた。それがまだいくつかの小さな商業プロジェクトで使用されている唯一の理由は、それが無料だからです。それについてのあなたの意見はどうですか?

更新:また、いくつかのサーバーを使用することを計画しているため、マスタースレーブレプリケーションも必要です。

update2:1つのケースについて聞いたことがあります。〜1GBのPostgreSQL DBが使用されました。データベースは、ほぼすべてのデータを変更することにより、更新で頻繁に使用されていました。問題は、データベースが2.5か月ごとに約10倍に成長していることです。彼らはPostgreSQL 8.3 + Centosを使用しています。また、Autovacuumが使用されました。データベースをダンプし、古いものを破壊し、データベースを再作成し、インポートすると、サイズを10倍削減できました。既存の投稿(ここここ)この問題は、最新のPostgreSQL 9バージョンでも相対的であることを示します。私はそれを通常の動作とは呼びません。このようなサイズの成長は私たちの場合では受け入れられません。

Update3:答えをありがとうございました。すべての答えは相対的であり、質問に役立ちます。

役に立ちましたか?

解決

他のポスターは、基本的にMySQLにリンクすることは、プロジェクトGPLまたは他のOSライセンスOracle / MySQLが例外を作成したことをライセンスしたことを意味することを意味します。ともかく...

OK、PostgreSQLは、MVCC、マルチバージョンの並行制御をサポートするデータストアにデータを保存します。これは、単純なレベルで、各トランザクションがデータベースのスナップショットを取得することを意味します。これは、そのトランザクションが開始時からコミットまたはロールバックされるまで一貫性があることを意味します。これは、いつでも単一のタプルがデータベースに複数のライブバージョンを持つことができることを意味します。 PGSQLでMVCCの実装方法により、これらの2つのバージョンはデータストアに同時に存在します。最終的には、最新のものを除くすべてが最も古いランニングトランザクションよりも古く、DBによって回復して再利用できます。これらの古い死んだタプルを取り戻すプロセスは、掃除機と呼ばれます。

8.3では、古いデッドブロックは、Free Space Mapと呼ばれる共有メモリセグメントで追跡されました。掃除機が十分に攻撃的でない場合、または空きスペースマップでスペースが足りなくなった場合、データベースは死んだタプルを回復(真空)または覚えておくことができるよりも速く(空き宇宙マップ)を作ることができます。

8.4では、free spaceマップは、.fsmファイルのハードドライブに保存されているため、ユーザーがメンテナンスを行います。ただし、真空に関する問題は依然として存在します。 Autovacuumは、インストール時にラップトップや小さなサーバーのようなものを殺さないように、あまり攻撃的ではないように調整されています。 RAID-10アレイに16のSSDを備えたサーバーのような多くのIO機能を備えたより大きなマシンでは、Autovacuumの攻撃性を上げることができ、かなりクレイジーなTPSレートに追いつくことができます。積極的な十分なAutovacuumと多くのディスクを備えた高速ハードウェアRAIDコントローラーを備えたサーバーで、長期間にわたって1秒あたり1,000〜3,000トランザクションを維持できます。 10,000に近づくTPS数は、より高価で大きなサーバーで可能です。何百もの接続にサービスを提供している間。

TL; DR:8.3は古く、DEFにはいくつかの問題がありました。 8.4以上はより良い空きスペースの回復を持っていますが、重い負荷に追いつくために積極的なAutovacが必要です。

他のヒント

3)PostgreSQLがバギーであり、大規模なデータセットを変更および保存するために最適化されていないという多くの否定的な返信を聞いた。それがまだいくつかの小さな商業プロジェクトで使用されている唯一の理由は、それが無料だからです。それについてのあなたの意見はどうですか?

これはFUDです。 PostgreSQLは、いくつかの大規模な展開で使用される完全に機能する高性能RDBMです。

2)現在のMySQL Community Edition Server 5.5.16を使用することについてGPL:プロジェクトソフトウェアアーキテクチャが多くのDBMSを接続することをサポートして設計されている場合、非GPLライセンスの下でプロジェクトソフトウェアを持つことは合法ですか?つまり、ソフトウェアが複数のDBMSサポートで設計されており、ソフトウェアが商用ライセンスの下に置かれているとします。クライアントがMySQL GPLバージョンを使用することを選択した場合、GPLライセンスに違反しますか?

GPLライセンスのライブラリにリンクするとすぐに、コード全体がGPLの下でライセンスされます。オラクルは 例外 他の無料ライセンスのみ。

3)PostgreSQLがバギーであり、大規模なデータセットを変更および保存するために最適化されていないという多くの否定的な返信を聞いた。それがまだいくつかの小さな商業プロジェクトで使用されている唯一の理由は、それが無料だからです。それについてのあなたの意見はどうですか?

rofl

冗談じゃないわ!純粋なFUDと他に何もありません。

PostgreSQLデータベースにはいくつかのTBデータがあり、1か月あたり約200GBが増えています。バグも問題もなく、素晴らしいパフォーマンスもありません。また、500人の同時ユーザーでは、まったく問題ありません。メーリングリストをチェックしてバグをカウントし、これらがどれだけ速く解決されるかを確認してください。数時間以内に修正があったとしても驚かないでください。 MySQLはそれから学ぶことができます。

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

同じ問題がありました。以前は、商用プロジェクトでMySQLを使用しました。しかし、Oracleが引き継ぎ、ポリシーの変更を許可した後、SQL-Express、DB2-Express、SQL-Lite、PostgreSQLなどの他のオプションを探しました。

多くの情報があるため、比較には入りません。しかし、postgreSqlは、

a)大きなデータセットの処理

b)SQL標準

c)インラインドキュメント

d)データベースの使用統計

実際、私はSQLコマンドやドキュメントの変更に関するオーバーヘッドなしで、一晩プロジェクトを開始することができました。

ただし、WindowsでDotNetを使用しているため、NPGSQLは私たちを怖がらせる唯一の信頼できるコネクタです。

しかし、これまでのところ、PostgreSQL 9.0で開発されていることは絶対にケーキでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top