日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ORM映射的弊端以及它對數(shù)據(jù)庫優(yōu)化影響

 昵稱10504424 2013-02-20

首先簡單的介紹下ORM關(guān)系對象映射的概念。雖然NOSQL現(xiàn)在在迅速崛起,但大多數(shù)人仍然在使用穩(wěn)定的關(guān)系型數(shù)據(jù)庫,我們將數(shù)據(jù)組織成記錄存儲在關(guān)系數(shù)據(jù)庫中,每一行代表一條記錄?,F(xiàn)代編程中,面向?qū)ο蠹夹g(shù)應(yīng)用已經(jīng)非常廣泛,關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)組織形式與面向?qū)ο蟮臄?shù)據(jù)組織形式存在根本上的差異。ORM的任務(wù)就是將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)通過ORM層映射為對象,使之能夠應(yīng)用于面向?qū)ο蟪绦?,方便編程?/a>


它確實為大多數(shù)程序員提供了便利:

1、程序員不需要再動手寫SQL語句,或者說大部分情況下不需要動手寫,只需要調(diào)用一系列函數(shù)即可完成數(shù)據(jù)庫CURD操作。

2、對不同數(shù)據(jù)庫管理系統(tǒng)的連接以及操作進行了抽象,程序員完全可以不考慮使用的是什么數(shù)據(jù)庫以及數(shù)據(jù)庫的版本。

總之,在中小型的項目開發(fā)中,它的確為我們帶來了高效的開發(fā)效率。


以上即是它的優(yōu)點,下面進入正題,即ORM的弊端以及它對數(shù)據(jù)庫優(yōu)化的影響。

缺點:

1、對于復(fù)雜的SQL有心無力。

2.、無法完全屏蔽數(shù)據(jù)庫底層細節(jié)(這也將是下面討論的),開發(fā)人員仍然要熟悉數(shù)據(jù)庫底層操作。

3、關(guān)系-對象映射的實現(xiàn)是以性能為代價,方便了開發(fā),犧牲了效率。

4、多余的工作:大多數(shù)ORM框架為了達到屏蔽某些細節(jié)問題或者對數(shù)據(jù)庫進行抽象,做了很多額外的工作,而這些工作對于大多數(shù)人來說是不需要的。比如,TP的ORM為防止SQL注入,做了很多類似強制類型轉(zhuǎn)換的工作。這樣做不僅僅降低了性能,同時也改變了數(shù)據(jù)本身的意義,對數(shù)據(jù)造成了污染。


ORM對數(shù)據(jù)庫優(yōu)化的影響。

ORM由于其屏蔽了數(shù)據(jù)庫的CURD細節(jié),程序員大多數(shù)情況下不需要再編寫SQL語句,在一個小型的網(wǎng)站中,這樣基本是沒有什么問題的。即使效率低下,如今的硬件水平也可以彌補軟件本身的性能問題。但如果在大型項目中盲目的使用ORM,定會造成性能的低下。原因如下:

1、上面關(guān)于ORM缺點已經(jīng)提到了關(guān)于性能的兩點問題。

2、數(shù)據(jù)庫優(yōu)化問題。


我將會重點解釋數(shù)據(jù)庫優(yōu)化這個影響。

大型項目中,數(shù)據(jù)庫關(guān)系、索引結(jié)構(gòu)等都是經(jīng)過嚴格控制的。程序員編寫的SQL語句直接影響到數(shù)據(jù)庫的執(zhí)行效率(通過影響SQL執(zhí)行計劃),有經(jīng)驗的程序員可以自己動手寫出高效的SQL語句,但毫無經(jīng)驗的程序員可能會使用ORM調(diào)用先關(guān)函數(shù)執(zhí)行數(shù)據(jù)庫操作,或許他能夠獲得好的執(zhí)行計劃,但我們不能將效率交給上帝來決定。

問題出現(xiàn)了, 根據(jù)上面的說法,我們是否需要完全自己動手寫出SQL語句呢?我覺得在性能要求較高的情景中,應(yīng)該是這樣的。ORM雖然屏蔽了SQL語句,提高了開發(fā)效率,同樣的,它也屏蔽了SQL優(yōu)化的細節(jié)。

如果大部分的SQL語句是自己動手寫出來的,這時候ORM框架本身也不在有什么值得我們依賴的優(yōu)勢了。我們既然要自己動手寫出SQL語句,那么就可以自己動手寫出關(guān)系-對象映射的簡單框架。同樣可以實現(xiàn)關(guān)系型數(shù)據(jù)庫與面向?qū)ο缶幊痰倪B接。


以上均是始終不夠的胡謅八扯,要是哪里說錯的,還請指正。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多