-2

ストアド プロシージャはセッション間で保持されますが、プリペアド ステートメントは保持されないため、プリペアド ステートメントはストアド プロシージャよりも db パフォーマンスを向上させる効果の低い手段と見なされるべきであるというのは正しいですか? つまり、準備されたステートメントは、セッションごとに再コンパイルされてキャッシュされますか?

このサイトにはこれに関するいくつかの質問がありますが、この特定の質問に対処しているようには見えません. この特定の質問に関して以外は、比較についてコメントする必要はありません。

4

1 に答える 1

0

多くの場合、パフォーマンスの違いはごくわずかです。

ストアド プロシージャを使用した場合の実際のパフォーマンスの節約は、ストアド プロシージャが複数の SQL ステートメントを実行している場合に、データベースへのラウンド トリップの回数を減らすことから得られます。

ストアド プロシージャが単一の SQL ステートメントをラップしており、単一の SQL ステートメントの代わりにアプリケーションから呼び出されている場合、MySQL でパフォーマンスが向上する可能性はほとんどありません。(実際には、MySQL がストアド プロシージャを呼び出すためにもう少し作業が必要になる場合があります。)

通常、ストアド プロシージャでパフォーマンスが向上するのは、クライアントが実行するステートメントの数を減らすことです。つまり、ステートメントの「実行」呼び出しの一部を排除します。

于 2013-07-26T04:34:54.880 に答える