3

Django プロジェクトで非常に単純な生の SQL を使用するつもりです。例:

SELECT name,doc_id,doc_content,creation_date from doc_table where uid = 'xxx' limit 1 ;

主な要件:

  • SQL クエリの実行とデータの取得の容易さ - 例: MySQLdb を使用する場合、カーソルを介して繰り返しクエリを実行したくなく、タプルを処理して必要なデータの辞書を取得します。

  • SQL インジェクションに対する保護、およびデータの適切なエスケープ。

2つの選択肢があり、

a) SQLAlchemy を使用する (未加工の SQL のみに使用する場合でも)。

b) MySQLdb の上に書かれたラッパーを使用するか、それを作成します。

私はSQLAlchemyについて多くの良いことを読んだので、SQLAlchemyに傾倒しています。

SQLAlchemy を単純な raw SQL にのみ使用する場合、より単純な MySQLdb ラッパーと比較して、CPU 使用率、メモリ使用率など、SQLAlchemy を使用することによる重大なパフォーマンス オーバーヘッドはありますか。SQLAlchemy の他のすべてのバッテリーはあまり役に立ちません。

4

1 に答える 1

6

要求に応じて、回答としてコメントを投稿します。

SQLAlchemyがsqlite3を直接使用するよりも25倍遅いのはなぜですか?の回答を参照してください。。そうではありませんがmysql、Mikeはパフォーマンステスト用のサンプルコードを投稿しました。これは、mySQLを使用してケースに適用し、すべてのCRUD操作を含めるように拡張できます。そこに投稿された結果から、SQLAlchemy Coreのみを使用した場合、パフォーマンスが大幅に低下することはないと結論付けられます。

また、生のSQLクエリにのみ使用する場合、SQLAlchemyはまだ推奨されていますか?に対する別のSOの回答を見てください。

于 2012-08-09T07:17:05.903 に答える