目前我們所接觸到的許多項目開發(fā),大多數(shù)都應用了 ORM 技術(shù)來實現(xiàn)與數(shù)據(jù)庫的交互,ORM 雖然有諸多好處,但是在實際工作中,特別是在大型項目開發(fā)中,容易發(fā)現(xiàn) ORM 存在一些缺點,在復雜場景下,反而容易大大增加開發(fā)的復雜度及犧牲靈活度。使用 ORM 不寫 SQL 而使數(shù)據(jù)庫交互變得簡單易行,是否能夠達到預期效果,要畫一個問號。
主要問題可能存在于以下幾點:
1.大幅度犧牲性能。
2.雖然隱藏了數(shù)據(jù)層面的設(shè)計,但并沒有從根本上降低數(shù)據(jù)訪問復雜度,只是將復雜緯度從一個點(SQL,存儲過程)轉(zhuǎn)移到另一個點(代碼),以EF為例,最終生成的代碼性能與C#書寫有很大關(guān)系,且難以通過成熟的數(shù)據(jù)庫技術(shù)反查性能瓶頸。
3.對于復雜查詢,ORM 力不從心,雖然從技術(shù)角度說實現(xiàn)肯定都能實現(xiàn),但是代價是不值的。
有朋友認為 ORM 可以使不懂數(shù)據(jù)庫的開發(fā)人員也能在開發(fā)中輕松實現(xiàn)與數(shù)據(jù)庫的交互,但是,在大型項目中,讓不懂數(shù)據(jù)庫的開發(fā)人員做這塊工作,Are you kidding me?
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26