我打算在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,因为我已经阅读了很多关于它的好东西。
如果我打算仅将它用于简单的原始SQL,那么使用SQLAlchemy会产生任何显着的性能开销,例如CPU使用率,内存使用情况与简单的MySQLdb包装器相比。所有其他SQLAlchemy电池都没什么用处。
答案 0 :(得分:6)
根据要求发布评论作为答案:
请参阅Why is SQLAlchemy insert with sqlite 25 times slower than using sqlite3 directly?的答案。虽然它不是mysql
,但迈克发布了性能测试的示例代码,您可以将其应用于mySQL的案例并扩展到包括所有CRUD操作。从那里发布的结果中,我得出结论,仅使用SQLAlchemy Core时不应有任何显着的性能下降。
另请参阅Is SQLAlchemy still recommanded if only used for raw sql query?
的另一个SO答案