我打算在Django項目中使用非常簡單的原始SQL。 例如:SQL鍊金術的性能,如果只用於原始的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的,因爲我已經讀了很多關於它的好東西。
會有用的SQLAlchemy如CPU使用率,內存使用率相比,一個簡單的MySQLdb的包裝,如果我打算用它僅用於簡單原始SQL的任何顯著的性能開銷。所有其他電池的SQLAlchemy沒有多大用處。
僅供參考,你可以從類型的字典背MySQLdb的情況下直接處理元組。只需添加:import mysqldb.cursors,並在你的連接調用中添加一個命名參數cursorclass = MySQLdb.cursors.DictCursor。 'fetchall()'返回的迭代器將是字典。 – sberry 2012-08-08 09:24:20
所以這裏的假設是查詢是針對沒有模型的數據庫? – 2012-08-08 09:27:23
@sberry是的,我已經看到,我想要一個包裝,以減輕插入,更新,選擇。 – DhruvPathak 2012-08-08 09:31:30