3

我打算在 Django 项目中使用非常简单的原始 SQL。例子:

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

主要要求:

  • 易于执行 SQL 查询和获取数据 - 例如。如果我使用 MySQLdb ,我不想通过游标重复进行查询,然后处理元组以获取所需数据的字典。

  • 防止 SQL 注入和正确的数据转义。

有两种选择,

a) 使用 SQLAlchemy ,即使仅用于原始 SQL。

b) 使用在 MySQLdb 上编写的包装器,或者编写一个。

我倾向于 SQLAlchemy,因为我已经阅读了很多关于它的好东西。

与更简单的 MySQLdb 包装器相比,如果我打算仅将它用于简单的原始 SQL,那么使用 SQLAlchemy 是否会产生任何显着的性能开销,例如 CPU 使用率、内存使用率。SQLAlchemy 的所有其他电池都没有多大用处。

4

1 回答 1

6

根据要求,发表评论作为答案:

请参阅为什么使用 sqlite 插入 SQLAlchemy 比直接使用 sqlite3 慢 25 倍的答案?. 尽管不是mysql,但 Mike 发布了一个用于性能测试的示例代码,您可以使用 mySQL 将其应用于您的案例并扩展为包括所有 CRUD 操作。从那里发布的结果中,我得出结论,仅使用SQLAlchemy Core时不应该有任何显着的性能下降。

另请查看如果仅用于原始 sql 查询,是否仍推荐 SQLAlchemy 的另一个 SO 答案

于 2012-08-09T07:17:05.903 回答