小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

云中的SQL與NoSQL:你應(yīng)該選擇哪種數(shù)據(jù)庫(kù)?

 昵稱9255533 2012-03-28

讓我們先從一個(gè)簡(jiǎn)單的問(wèn)題開(kāi)始:什么是NoSQL和SQL之間的真正差異?在我看來(lái),NoSQL和SQL所提供的不同的訪問(wèn)模式導(dǎo)致非常不同的可伸縮性和性能。

NoSQL的元素,只允許在一個(gè)狹窄的預(yù)定義的訪問(wèn)模式下訪問(wèn)數(shù)據(jù)。例如,DHT(分布式哈希表)是通過(guò)哈希表的API訪問(wèn);給出確切的鍵值(key),則返回響應(yīng)的值(value)。其他NoSQL數(shù)據(jù)服務(wù)的數(shù)據(jù)訪問(wèn)模式同樣是狹隘的和明確的,因此可伸縮性和性能結(jié)構(gòu)是可預(yù)測(cè)和可靠的 。

在SQL中,訪問(wèn)模式事前未知,基于表建模,假設(shè)作出的訪問(wèn)模式,這些假設(shè)轉(zhuǎn)換成預(yù)定義的優(yōu)化(方式),如定義索引 。SQL是一種通用的語(yǔ)言,它允許以各種方式訪問(wèn)數(shù)據(jù)。程序員對(duì)SQL語(yǔ)句的執(zhí)行控制能力也是有限的;大多數(shù)情況下,數(shù)據(jù)庫(kù)引擎優(yōu)化SQL語(yǔ)句的執(zhí)行 。換言之,在SQL中,數(shù)據(jù)模型強(qiáng)制定義數(shù)據(jù)的工作方式-強(qiáng)調(diào)建立數(shù)據(jù)的完整性、簡(jiǎn)潔性、數(shù)據(jù)標(biāo)準(zhǔn)化和抽象,這對(duì)所有大型復(fù)雜應(yīng)用極為重要。

為何選用NoSQL

NoSQL方法相對(duì)SQL數(shù)據(jù)庫(kù)具有巨大優(yōu)勢(shì),因?yàn)樗试S擴(kuò)展大規(guī)模應(yīng)用到新的水平 。新的數(shù)據(jù)服務(wù)基于真正可擴(kuò)展的結(jié)構(gòu)和架構(gòu),可構(gòu)建為云模式,可構(gòu)建為分布式,對(duì)開(kāi)發(fā)人員很有吸引力。不需要DBA,無(wú)需復(fù)雜的SQL查詢,且快速。萬(wàn)歲,人民的自由!

問(wèn)題不小- 一個(gè)好的程序員自由選擇數(shù)據(jù)模型,使用熟悉的工具寫程序或開(kāi)發(fā)應(yīng)用,減少對(duì)他人的依賴,測(cè)試和代碼優(yōu)化,無(wú)需而猜測(cè)或依靠黑盒子(DB)。是的,它的測(cè)試系統(tǒng)響應(yīng)緩慢,但后面會(huì)有人調(diào)整DB來(lái)解決這個(gè)問(wèn)題... ...這些都是NoSQL運(yùn)動(dòng)的主要優(yōu)勢(shì)。

為什么不...

NoSQL方法也有一些缺點(diǎn)。這些都是在開(kāi)發(fā)階段不可見(jiàn)的,但在系統(tǒng)、架構(gòu)及操作階段是高度可見(jiàn)的
1. 在系統(tǒng)層次,數(shù)據(jù)模型為鍵值。沒(méi)有能設(shè)計(jì)單一的、定義良好的數(shù)據(jù)模型的熟練專家,無(wú)論采用何種技術(shù),都有其缺點(diǎn)。數(shù)據(jù)模型可能遭受數(shù)據(jù)對(duì)象重復(fù)的折磨(非規(guī)范化模型)。由于不同的開(kāi)發(fā)者采用不同的對(duì)象模型且映射到持久模型時(shí)可能產(chǎn)生此類現(xiàn)象 。在系統(tǒng)層面上,人們還必須了解所選擇的數(shù)據(jù)服務(wù)的局限性,與其大小、每秒的操作次數(shù),以及并發(fā)模型等無(wú)關(guān)。

2. 在結(jié)構(gòu)層次,兩個(gè)主要問(wèn)題是接口和互操作性。NoSQL的數(shù)據(jù)服務(wù)的接口有待規(guī)范。即使是DHT,這是一個(gè)簡(jiǎn)單的接口,仍然沒(méi)有標(biāo)準(zhǔn)的語(yǔ)義,其中包括事務(wù)、非阻塞API等。每個(gè)DHT的服務(wù)使用其自己的一套接口。另一個(gè)大問(wèn)題是不同的數(shù)據(jù)結(jié)構(gòu),如DHT和二叉樹(shù),只是作為一個(gè)例子,共享數(shù)據(jù)對(duì)象。所有這些服務(wù)中,指針沒(méi)有內(nèi)在的語(yǔ)義。事實(shí)上,這些服務(wù)中,處理互操作性是開(kāi)發(fā)者的職責(zé),這一點(diǎn)很很重要,尤其是當(dāng)需要數(shù)據(jù)被多個(gè)服務(wù)訪問(wèn)時(shí) 。一個(gè)簡(jiǎn)單的例子:后臺(tái)工作由Java實(shí)現(xiàn),Web服務(wù)類工作由PHP實(shí)現(xiàn),數(shù)據(jù)可以被輕易地從兩個(gè)域訪問(wèn)數(shù)據(jù)嗎?顯然,人們可以使用Web服務(wù)作為前端數(shù)據(jù)訪問(wèn)層,但是,事情變得更復(fù)雜,并降低了業(yè)務(wù)敏捷性,靈活性和性能,同時(shí)增加了開(kāi)發(fā)工作量。

3. 轉(zhuǎn)向操作領(lǐng)域。在這里,依據(jù)我的經(jīng)驗(yàn),最大的困難在于,理所當(dāng)然地,在云或一組固定的服務(wù)器環(huán)境下,操作環(huán)境需要一套工具,不僅可擴(kuò)展性好,而且還要管理并且穩(wěn)定。當(dāng)出現(xiàn)錯(cuò)誤時(shí),它不應(yīng)該需要通過(guò)整個(gè)環(huán)境鏈和上溯到開(kāi)發(fā)者層次來(lái)診斷問(wèn)題。事實(shí)上,這正是運(yùn)營(yíng)經(jīng)理的噩夢(mèng) 。你有沒(méi)有試過(guò)讓開(kāi)發(fā)人員診斷為什么支付系統(tǒng)不能正常工作,而他在一間酒吧喝啤酒?我確信該開(kāi)發(fā)者歲月中將被他對(duì)工作的奉獻(xiàn)精神留下深刻的印象,但這是一種來(lái)打動(dòng)別人的相當(dāng)昂貴的方式 ? 操作需要系統(tǒng)化和自包含。目前市場(chǎng)上可用的的NoSQL服務(wù),這是不容易實(shí)現(xiàn)的,即使在諸如亞馬遜的管理環(huán)境 。
所以,怎樣才能獲得的NoSQL方法的主要優(yōu)點(diǎn),同時(shí)保持SQL方法的優(yōu)勢(shì)呢?

SQL和NoSQL結(jié)合

使用NoSQL的基礎(chǔ)架構(gòu)實(shí)現(xiàn)SQL數(shù)據(jù)庫(kù)是一個(gè)很好的解決方案。一個(gè)SQL數(shù)據(jù)庫(kù)是可擴(kuò)展、易管理,云就緒、高度可用的,完全建立在NoSQL的基礎(chǔ)結(jié)構(gòu)上,但仍然提供SQL數(shù)據(jù)庫(kù)的所有優(yōu)勢(shì),如互操作性,定義良好的語(yǔ)義以及更多。

這種混合結(jié)構(gòu)將不如NoSQL的服務(wù)快,但足以滿足需要更強(qiáng)可擴(kuò)展性和自然云行為的80%的市場(chǎng)需求。

這種解決辦法還允許很容易地遷移現(xiàn)有的應(yīng)用到云環(huán)境,從而保護(hù)相關(guān)組織在這些應(yīng)用上所付出的巨大的投資。

在我看來(lái),構(gòu)建于NoSQL基礎(chǔ)之上的SQL數(shù)據(jù)庫(kù),可以為那些在其成長(zhǎng)期間期望靈活、高效的客戶提供最高的價(jià)值。

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多