私は現在、Java Web プロジェクトを開発しています。すべての ORM を備えた JPA と、ストアド プロシージャを使用してクエリを直接設定するか、MySQL クエリを直接設定する機会を選択する必要があります。これらのポイントの長所と短所を厳密な順序で検討する必要があります。
- パフォーマンス: 迅速に結果を出す
- 複雑さ: 学習曲線が長いのはどちらのソリューションですか?
ストアド プロシージャは JPA クエリよりも高速ですか?
私は現在、Java Web プロジェクトを開発しています。すべての ORM を備えた JPA と、ストアド プロシージャを使用してクエリを直接設定するか、MySQL クエリを直接設定する機会を選択する必要があります。これらのポイントの長所と短所を厳密な順序で検討する必要があります。
ストアド プロシージャは JPA クエリよりも高速ですか?
パフォーマンスに関しては、具体的な数値はありません。あなたが持っているかもしれない特定の懸念について詳しく説明してください。
一般に、JPA を使用すると、カスタム ソリューションを実装する場合に比べて、パフォーマンス チューニングに関する制御がはるかに少なくなります。ただし、JPA は、自分で記述する必要のない大量の機能を備えた、堅牢で実証済みのインフラストラクチャを提供します。JPA は間違いなく、アプリケーションをより迅速に軌道に乗せるのに役立ちます。
学習曲線の観点から。あなたが新たに始めていると仮定すると...どちらのアプローチでも学ぶべきことがたくさんあります。どちらも、SQL とエンティティ関係モデルの実用的な知識が必要です。JPA アプローチでは、JPA を学ぶ必要があります。図に行く!MySQL のアプローチには、JDBC の知識が必要です。
「ストアド プロシージャは JPA クエリよりも高速に実行されますか」という質問は、実際には適切な質問ではありません。JPA 2.1 は、ストアド プロシージャをサポートします。より良い質問は、JPA でのクエリは、JDBC で呼び出された MySQL クエリよりも速く実行されるか、または JPA でのストアド プロシージャは、JDBC で呼び出された MYSQL ストアド プロシージャよりも速く実行されるかということです。全体として、直接的な JDBC アプローチは JPA よりも少し速いかもしれませんが、それは JPQL (JPA の SQL に似た言語) を SQL に変換するオーバーヘッドが小さいためです。