當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司
SQL到NOSQL的思維轉(zhuǎn)變
1, 索引撐持。聯(lián)系型數(shù)據(jù)庫創(chuàng)建之初沒有想到今日的互聯(lián)網(wǎng)運(yùn)用對可擴(kuò)大性提出如此高的懇求,因而,描繪時(shí)首要思索的是簡化用戶的任務(wù),SQL言語的發(fā)生促進(jìn)數(shù)據(jù)庫接口的標(biāo)準(zhǔn)化,然后構(gòu)成了Oracle這樣的數(shù)據(jù)庫公司并帶動了上下游產(chǎn)業(yè)鏈的開展。聯(lián)系型數(shù)據(jù)庫在單機(jī)存儲引擎撐持索引,比方Mysql的Innodb存儲引擎需求撐持索引,而NOSQL體系的單機(jī)存儲引擎是樸實(shí)的,只需求撐持依據(jù)主鍵的隨機(jī)讀取和規(guī)模查詢。NOSQL體系在體系層面供給對索引的撐持,比方有一個(gè)用戶表,主鍵為user_id,每個(gè)用戶有許多特色,包羅用戶名,相片ID(photo_id),相片URL,在NOSQL體系中若是需求對photo_id樹立索引,可以保護(hù)一張分布式表,表的主鍵為
2, 業(yè)務(wù)并發(fā)處置。聯(lián)系型數(shù)據(jù)庫有一整套的關(guān)于業(yè)務(wù)并發(fā)處置的理論,比方鎖的粒度是表級,頁級仍是行級,多版別并發(fā)操控機(jī)制MVCC,業(yè)務(wù)的阻隔等級,死鎖檢測,回滾,等等。但是,互聯(lián)網(wǎng)運(yùn)用大多數(shù)的特色都是多讀少些,比方讀和寫的份額是10 : 1,而且很少有雜亂業(yè)務(wù)需求,因而,一般可以選用更為簡略的copy-on-write技能:單線程寫,多線程讀,寫的時(shí)分履行copy-on-write,寫不影響讀效勞。NOSQL體系這樣的假定簡化了體系的描繪,減少了許多操作的overhead,進(jìn)步了功能。
3, 動態(tài)仍是靜態(tài)的數(shù)據(jù)結(jié)構(gòu)。聯(lián)系型數(shù)據(jù)庫的存儲引擎總是一顆磁盤B+樹,為了進(jìn)步功能,可以需求有insert buffer聚合寫,query cache緩存讀,常常需求完成相似Linux page cache的緩存管理機(jī)制。數(shù)據(jù)庫中的讀和寫是相互影響的,寫操作也由于時(shí)不時(shí)需求將數(shù)據(jù)flush到磁盤而功能不高。簡而言之,聯(lián)系型數(shù)據(jù)庫存儲引擎的數(shù)據(jù)結(jié)構(gòu)是通用的動態(tài)更新的B+樹,但是,在NOSQL體系中,比方Bigtable中選用SSTable + MemTable的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)先寫入到內(nèi)存的MemTable,到達(dá)必定巨細(xì)或許超越必定工夫才會dump到磁盤生成SSTable文件,SSTable是只讀的。若是說聯(lián)系型數(shù)據(jù)庫存儲引擎的數(shù)據(jù)結(jié)構(gòu)是一顆動態(tài)的B+樹,那么SSTable就是一個(gè)排好序的有序數(shù)組。很明顯,完成一個(gè)有序數(shù)據(jù)比完成一個(gè)動態(tài)B+樹且包羅雜亂的并發(fā)操控機(jī)制要簡略高效地多。
4, Join操作。聯(lián)系型數(shù)據(jù)庫需求在存儲引擎層面撐持Join,而NOSQL體系一般依據(jù)運(yùn)用來決議Join完成的方法。舉個(gè)比方,有兩張表:用戶表和商品表,每個(gè)用戶下可以有若干個(gè)商品,用戶表的主鍵為
聯(lián)系型數(shù)據(jù)庫的功能瓶頸往往不在SQL句子解析上,而是在于需求撐持齊備的SQL特性?;ヂ?lián)網(wǎng)公司面對的問題是運(yùn)用對功能和可擴(kuò)大性懇求很高,而且DBA和開發(fā)工程師水平比擬高,可以顛末獻(xiàn)身一些接口友好性來交換更好的功能。NOSQL體系的一些描繪,比方顛末寬表完成Join操作,互聯(lián)網(wǎng)公司的DBA和開發(fā)工程師也做過,NOSQL體系僅僅加強(qiáng)了這種束縛。從長遠(yuǎn)來看,可以總結(jié)一套束縛調(diào)集,而且界說一個(gè)SQL子集,只需求撐持這個(gè)SQL子集就可以在不獻(xiàn)身可擴(kuò)大性的前提下?lián)纬直确?0%以上的互聯(lián)網(wǎng)運(yùn)用。我想,NOSQL技能開展到這一步的時(shí)分就算是比擬成熟了,這也是咱們結(jié)尾想做的工作。咱們在描繪和運(yùn)用NOSQL體系的時(shí)分也可以恰當(dāng)轉(zhuǎn)化一下思想,如下:
1, 更大的數(shù)據(jù)量。許多人在運(yùn)用Mysql的進(jìn)程遇到記載條數(shù)超越必定值,比方2000W的時(shí)分,數(shù)據(jù)庫功能開端下落,這個(gè)值的得出往往需求顛末許多的測驗(yàn)。但是,大多數(shù)的NOSQL體系可擴(kuò)大性都比擬好,可以撐持更大的數(shù)據(jù)量,因而也可以選用一些空間換工夫的做法,比方顛末寬表的方法完成Join。
2, 功能預(yù)估愈加簡略。聯(lián)系型數(shù)據(jù)庫由于雜亂的并發(fā)操控,insert buffer及相似page cache的讀寫優(yōu)化機(jī)制,功能預(yù)算相對較難,許多時(shí)分需求憑仗經(jīng)歷或許顛末測驗(yàn)才干得出體系的功能。然后,NOSQL體系由于存儲引擎完成,并發(fā)操控機(jī)制等相對簡略,可以顛末硬件的功能指標(biāo)在體系描繪之處大致預(yù)估體系的功能,功能預(yù)估可操作性相對更強(qiáng)
- 1404過錯(cuò)跳轉(zhuǎn)到一個(gè)頁面,咱們?nèi)∶校簃issing404.php
- 2JavaScript cookie詳解
- 3再次提及貸款風(fēng)險(xiǎn)管理
- 4玩具租賃商城系統(tǒng)需求6
- 5企業(yè)建站的重要性
- 6P2P網(wǎng)貸的營銷戰(zhàn)略特點(diǎn)
- 7網(wǎng)站建設(shè)何以做到內(nèi)容豐富
- 8公司網(wǎng)站建成后應(yīng)該做些什么?
- 9租賃網(wǎng)站功能介紹
- 10關(guān)于編碼最佳應(yīng)用實(shí)踐
- 11企業(yè)站針對用戶的優(yōu)化
- 12評估企業(yè)站做的好壞的方法
- 13閱讀PHP驗(yàn)證碼工具-Securimage
- 14網(wǎng)站策劃的重要討論
- 15網(wǎng)站備案所需材料
- 16玩具租賃商城系統(tǒng)需求1
- 17網(wǎng)站建設(shè)之搜索功能強(qiáng)化升級標(biāo)準(zhǔn)
- 18久途教你怎么樣經(jīng)營自己的網(wǎng)站
- 19如何讓搜索引擎看到更真實(shí)的網(wǎng)頁
- 20Asia-Pacific Economic Cooperation 工商咨詢理事會亞太中小企業(yè)峰會
- 21PHP與XML聯(lián)手進(jìn)行網(wǎng)站編程
- 22引領(lǐng)潮流的全新商業(yè)模式,四網(wǎng)合一
- 23 企業(yè)四網(wǎng)合一網(wǎng)站升級版3
- 24有關(guān),PHP.ini 性能優(yōu)化
- 25企業(yè)網(wǎng)站與其他網(wǎng)站有什么區(qū)別和差異呢!
- 26輕型數(shù)據(jù)庫SQLite結(jié)合PHP的開發(fā)
- 27JavaScript 性能提升技巧
- 28玩具租賃系統(tǒng)功能列表
- 29電子商務(wù)網(wǎng)站的下一個(gè)掘金點(diǎn)-----O2O
- 30網(wǎng)站優(yōu)化企業(yè)的方法
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓