2

私たちは2年以上開発されているPHPプロジェクトに取り組んでおり、今ではチームは開発をORMに切り替える準備ができていると感じています。これは、開発を本当にスピードアップし、オブジェクトで操作できるようにし、ほとんどの場合、SQLコードやデータベーステーブルの観点から考える必要がないためです。

Doctrine ORMを選択することにしました。これは、YAMLデータフィクスチャがロードされているためです。ユニットテストには非常に必要です。

私が抱えている主な懸念は、新しいORMフレームワークを使用すると、サイトのパフォーマンスが低下する可能性があることです。現在のデータベース抽象化レイヤー(pg_connect構文を使用し、 PDO互換ではありません)間で共有接続を確立することはできません。PDO_SQLITE構文と互換性のないSQLコードが多数あるため、データベース接続メカニズムをPDO互換に切り替えることはできません。

ですから、私が理解しているように、それを使い始めると、データベース接続の数が2倍になります。データベースサーバーがこれを処理できるかどうかはわかりません。

この状況で私たちに何をすることをお勧めしますか?

4

3 に答える 3

1

PDO_SQLITEとの関連性は何ですか?

実際にSQLiteドライバーを使用する予定がない限り、互換性はPDOによって義務付けられていません。

SQLiteを使用しない場合は、レガシーデータベースレイヤーをPDOと互換性を持たせ、Doctrineに完全に移行できるようになるまで接続を再利用します。

とはいえ、ORMに移行する際のパフォーマンス上の懸念は、接続のレベルだけではありません。それらは本質的に非効率的であるため、冗長データが必然的に選択されるため、クエリが遅くなり、アプリケーションサーバーとデータベースサーバー間の帯域幅の使用量が増え、アプリケーションレベルでのメモリ使用量が増えると予想されます。現在の設定に応じて、上記が問題になる場合とそうでない場合があります。

ただし、これらは一般的なORMの特性であり、特にDoctrineではなく、私が経験したことのないものであるため、最後の段落を少しだけ塩で取っておく必要があります。

于 2009-03-06T13:00:11.703 に答える