sql >> データベース >  >> RDS >> Mysql

MySqlのネストされたSPがボトルネックになる可能性はありますか?

    はい、可能です。これにかかる時間の測定値はありませんが、一時テーブルを作成し、データを書き込み、クエリを実行してからドロップするときに、一時テーブルによってオーバーヘッドが発生することが予想されます。これはどのくらいの頻度で呼び出されますか?

    また、MySQLのストアドプロシージャは一般的にかなり非効率的であることが知られています。 Oracleや他のRDBMSブランドのように、コンパイルされた形式のプロシージャは保持されません。つまり、すべてのセッションは、最初に呼び出されたときに使用する各プロシージャを再コンパイルします。

    まず、一時テーブルを削除することをお勧めします。ネストされたプロシージャを設計して、適切なSQLクエリを文字列として作成し、その文字列を返します。次に、外部プロシージャがクエリを実行し、その結果が得られます。一時テーブルの作成/削除、および一時テーブルへの挿入をスキップできるはずです。

    次に、このアプリを設計している場合、どちらのストアドプロシージャも必要ありません。アプリケーションで適切なSQLクエリを作成するコードを記述し、アプリケーションからそのクエリを実行することをお勧めします。



    1. 私の場合、OracleでSQLを作成するにはどうすればよいですか?

    2. 2022年にあなたのビジネスを近代化する方法

    3. オンラインホテル予約で競合状態を防ぐ方法

    4. MYSQLifステートメントの質問