私は次の開発プロジェクトでFirebirdまたはPostgresのいずれかを使用することを検討しています...主に両方がBSDのようなライセンスの下で利用可能であるためです。
私は2つのデータベースの素晴らしい比較を http://web.archive.org/web/20100305134128/http://www.amsoftwaredesign.com/pg_vs_fb で見つけました。
しかし、この比較は4年以上前のものであり、両方のデータベースはそれ以来長い道のりを歩んできました。
FirebirdとPostgresの両方の現在のバージョンに関連するように比較テーブルを更新することを気にする人はいますか...または2つのデータベース間で最近の良い比較を行うサイトへのリンクがありますか?
機能のリストを比較するだけでなく、次のような質問に答える際にも、RDBMSのようなテクノロジーを選択する必要があります。
私にとって、FBは良い選択ではありません。私は2つの話を指摘することができます:
私はさらに2つか3つ指摘することができますが、これらは私が言うのに十分です:いいえ、FBは私の選択ではなく、RDBMSではなく、おもちゃです。
そして、彼らは悪いドキュメントを持っています。実際、各リリースで実際の参照はありません。人々がフォーラムで尋ねるとき:リリースXXの機能の完全なリストは何ですか?標準的な答えは次のとおりです。最後の公式Interbaseリリースからリストを取得し、それ以降のすべてのリリースの「リリースノート」から関数を追加(削除)します。
そして、彼らは奇妙なサポート/開発戦略を持っています。彼らは、ユーザーにとって本当に重要なことや迷惑なことではなく、彼らにとって興味深いこと、深い技術的な問題に取り組んでいます。
私は長い間Firebirdを使用してきましたが、決して使用しないことをお勧めします。それらには、Postgresにはない多くの根本的な問題があります。多くは言うまでもありませんが、「ビューの変更」コマンドがまだないことを言ってください。ビューを変更するには、ビューとそれに依存するすべてのビューをドロップして再作成する必要があります。これは、FBの多くの誤動作の1つです。これらのDBエンジンを比較することはまったく正しくありません。停電がなくても、通常のワークロードでFirebirdデータベースが破損するケースが多かったです。それでも決定する場合は、Firebirdを使用しないでください。すでにFBを選択している場合は、しばらくして私の言葉を覚えているでしょう:)
Firebirdについてコメントできます。最初の比較以降、以下が変更されました。
マルチスレッドアーキテクチャは利用できますか?はい(スーパーサーバー)
実際、スケーラビリティにはクラシックサーバーが推奨されるサーバータイプです。 Firebird 2.5以降、SuperClassicと呼ばれるアーキテクチャもあります。違いについて小さな投稿を書きました: SuperServer、ClassicServer、またはSuperClassic?
トランザクション情報をデータと同じファイルに保存しますか?はい(赤)
これが赤で書かれるのにどのように問題になるのかわかりません。 Firebirdは注意深い書き込みを使用して、データベース構造が常に一貫していることを確認します。
一時テーブル?番号
Firebird2.1で利用できます。 リリースノート
豊富な組み込み関数?番号
Firebird2.1もこれを改善しました。 リリースノート
複数の認証方法(つまりLDAP)いいえ
LDAPサポートはありませんが、Firebird2.1ではWindows認証が可能です。 リリースノート
ユーザー定義タイプを作成しますか?番号
著者がここで何を意味するのかはわかりませんが、Firebirdには永遠にドメインがあります。
圧縮するためにバックアップ/復元が必要ですか?はい(赤)
議論の余地がある。データベーススペースは再利用されます。本番環境でデータベースを縮小する必要性を想像するのは難しいと思います。
クエリでPOSIX正規表現を使用しますか?番号
Firebird2.5は正規表現をサポートしています。 リリースノート
データベースの監視?番号
はい、Firebird2.1はシステムテーブルを介したデータベース監視をサポートしています。 Firebird 2.5は、トレース機能のサポートを追加します。
私は少なくとも1つの優れた Firebird用のデータベース監視ツール を知っています。 ;)
ローカルまたはリモートの他のサーバー上のデータベースにクエリを実行する機能。番号
Firebird 2.5は、リモートデータベースにクエリを実行できます。 リリースノート
引用したページのPostgres列の各NoはまだNoですが、データベース内のすべてのテーブルに選択権限のみを付与することで、読み取り専用データベースを効果的に使用できます。ただし、8.2以降には多くの新機能があります。いくつか 8.4から :
...そして 8.3からのいくつか :
...ファイヤーバードがこれらを持っているかどうか、私は知りません。
Firebirdを使用している場合は、 Firebird 2.1リリースノート を読んで、Linuxで実行されている古いFirebirdバージョンでのデータベース破損の問題を理解することをお勧めします。
要するに、それはLinuxのバグと関係があります。古いFirebirdの場合、回避策は、影響を受けるファイルシステムをsyncオプションでマウントすることです。この問題はFB2.1で修正されています。
ファイルシステムベースのバックアップが可能
はい(ポストマスターを停止する必要があります)
真実ではない。 8.1以降(私が正しく覚えている場合)、WALアーカイブをアクティブにしてから、何もシャットダウンせずにファイルシステムベースのバックアップを作成することが可能です。詳細については、ドキュメントでPITR(point-in-time-recovery)を探してください
重要なことの1つは、展開です。