0

大規模な codeigniter アプリケーションを開発しています。mysql でストアド プロシージャを使用すると思います。CI でストアド プロシージャを使用するのは良い考えですか?

将来、CI のアクティブ レコードに問題が発生することはありますか? 私は正しいことをしていますか、それとも間違っていますか?

ストアド プロシージャ呼び出し後の Codeigniter DB エラー

私は毎回この問題に直面しています。

私に提案してください。

前もって感謝します :)

4

1 に答える 1

1

実際、それは「聖戦」の質問です。すべての長所と短所をグーグルで検索できますが、一般的に、特別なニーズがなく、ペットプロジェクトまたはストアドプロシージャの概念実証でない場合は、ストアドプロシージャの使用を避けてください。

理由は次のとおりです。

  • メンテナンス。データ構造に変更を加えると、更新手順を忘れがちです。
  • ドキュメンテーション。場合によっては、特に新入社員は、その手順が正確に何をするかを知らないか、手順とは少し異なるデータを必要として独自に作成するため、しばらくすると手順が混乱します。
  • パフォーマンス。準備済みステートメントを使用する場合、それらはクエリ パーサーとオプティマイザーによって「コンパイル」され、キャッシュに格納されます。クエリ マネージャーを呼び出すたびに、新しいデータを使用してそのコンパイル済みクエリを実行するだけなので、パフォーマンス上の利点は得られません (1 分間に 10,000 ヒット x 各リクエストで db への N クエリについて話している)。

私の信念は間違っているかもしれませんが、プロトタイピングや急速に成長するプロジェクトにとって、ストアド プロシージャは意味がありません。私はそれらを試してみて、時々それらが良いと感じましたが、それ以上のものはありませんでした. OracleとPostgreSQLに存在するため、mysqlストアドプロシージャが追加されたようです

結論:

コードの複雑さを増してもメリットはありません (あるとしても)。

dba.stackexchange.comで質問したり、類似のものを探したりすることもできます。評判の良い人が何か提案してくれるのではないでしょうか?

Coding Horrorで入手できる一般的なストアド プロシージャに関する優れた記事は、少し古いですが、一般的に優れた考えを持っています。

于 2013-06-06T11:57:40.807 に答える