我覺得稍微大一點的專案,都要用,業務模型一複雜起來,如果隨便修改一個東西,我要修改很多處的話,很容易出錯。效率問題,sqlalchemy已經為我們做到很好很好了,比我們很多人手寫的sql效率都要高。如果確實擔心效率問題,你完全可以在常用介面,手寫sql,其他還是用orm。至於上面所說的,網際網路公司不用,更是扯淡。網際網路公司的產品迭代非常快,改動比較多,要是有200個介面,全是用sql寫,你很容易就會出錯。我目前用flask框架作為http前端,sqlalchemy做orm,twisted用作tcp伺服器,twisted方面,基本只訪問redis,就是以為twisted本身自帶的dbpool基本都手寫sql,業務模型稍微一修改,sql語句都要找半天,真是浪費時間。還有上面說的,多個數據庫,或者讀寫分離的,拜託,大哥,這個問題sqlalchemy不知道哪年就解決了。還有快取問題,我現在基本都用redis作為快取,基礎資料redis裡放一份,sql裡面放一份,同時更改。常用查詢,完全可以自己做一個快取,這個很難嗎?
我覺得稍微大一點的專案,都要用,業務模型一複雜起來,如果隨便修改一個東西,我要修改很多處的話,很容易出錯。效率問題,sqlalchemy已經為我們做到很好很好了,比我們很多人手寫的sql效率都要高。如果確實擔心效率問題,你完全可以在常用介面,手寫sql,其他還是用orm。至於上面所說的,網際網路公司不用,更是扯淡。網際網路公司的產品迭代非常快,改動比較多,要是有200個介面,全是用sql寫,你很容易就會出錯。我目前用flask框架作為http前端,sqlalchemy做orm,twisted用作tcp伺服器,twisted方面,基本只訪問redis,就是以為twisted本身自帶的dbpool基本都手寫sql,業務模型稍微一修改,sql語句都要找半天,真是浪費時間。還有上面說的,多個數據庫,或者讀寫分離的,拜託,大哥,這個問題sqlalchemy不知道哪年就解決了。還有快取問題,我現在基本都用redis作為快取,基礎資料redis裡放一份,sql裡面放一份,同時更改。常用查詢,完全可以自己做一個快取,這個很難嗎?