為什么出現(xiàn)NoSQL?
隨著互聯(lián)網(wǎng)的發(fā)展,當(dāng)我們把一臺(tái)服務(wù)器一臺(tái)服務(wù)器變成兩臺(tái)服務(wù)器,當(dāng)我們開(kāi)始建立數(shù)據(jù)備份,當(dāng)我們需要加一個(gè)緩沖層,來(lái)調(diào)整所有的查詢,投入更多的硬件。
最后,需要將數(shù)據(jù)切分多個(gè)集群上,并重構(gòu)大量的應(yīng)用邏輯以適應(yīng)這種切分。不久之后,你就會(huì)發(fā)現(xiàn)被自己數(shù)月前的設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)限制住了。
隨著web2.0的興起,關(guān)系型數(shù)據(jù)庫(kù)本身無(wú)法克服的缺陷越來(lái)越明顯,主要表現(xiàn)為如下幾點(diǎn)。
1、對(duì)數(shù)據(jù)高并發(fā)讀寫(xiě)的需求
2、對(duì)海量數(shù)據(jù)的高效率存儲(chǔ)和訪問(wèn)的需求。
3、對(duì)數(shù)據(jù)庫(kù)的高可擴(kuò)展性和高可用性的需求。
4、數(shù)據(jù)庫(kù)事務(wù)一致性需求。
5、數(shù)據(jù)庫(kù)寫(xiě)實(shí)性和讀寫(xiě)時(shí)性需求。
6、對(duì)復(fù)雜SQL的查詢,特別是對(duì)關(guān)聯(lián)查詢的需求。
NoSQL是Notonly SQL的縮寫(xiě),NoSQL不使用SQL作為查詢語(yǔ)言。其數(shù)據(jù)存儲(chǔ)可以不需要固定的表格模式,也經(jīng)常避免使用SQL的join操作,一般有水平可擴(kuò)展性的特征。
NoSQL歷史?
1、NoSQL一詞最早出現(xiàn)在1998年,是Carlo Strozzi開(kāi)發(fā)的一個(gè)輕量、開(kāi)源、不提供SQL功能的關(guān)系數(shù)據(jù)庫(kù)。
2、2009年,Last.fm的Johan Oskarsson發(fā)起了一次關(guān)于分布式開(kāi)源數(shù)據(jù)庫(kù)的討論,來(lái)自Rackspace的Eric Evans再次提出了NoSQL概念,這時(shí)的NoSQL主要是指非關(guān)系型、分布式、不提供數(shù)據(jù)庫(kù)設(shè)計(jì)模式。
3、2009年趨勢(shì)高漲,被定為“非關(guān)系型的”數(shù)據(jù)存儲(chǔ),相對(duì)于關(guān)系型數(shù)據(jù)庫(kù)運(yùn)用,這一概念無(wú)疑是一種全新思維的注入。
SQL和NoSql的區(qū)別?
NoSQL具有如下幾點(diǎn)
優(yōu)點(diǎn):
1、高并發(fā)讀寫(xiě)
2、海量數(shù)據(jù)存儲(chǔ)
3、高可擴(kuò)展性
4、高可用性
缺點(diǎn):
5、缺乏事務(wù)一致性
6、缺乏讀寫(xiě)實(shí)時(shí)性
7、不支持復(fù)雜查詢
NoSQL數(shù)據(jù)庫(kù)類型
Key-value:key指Value的鍵值對(duì),通常用hash table來(lái)實(shí)現(xiàn)
列式數(shù)據(jù)庫(kù):同一列數(shù)據(jù)存在一起
文檔型數(shù)據(jù)庫(kù):Key-Value對(duì)應(yīng)的鍵值對(duì),Value為結(jié)構(gòu)化數(shù)據(jù)產(chǎn)品:MongoDB
圖結(jié)構(gòu)數(shù)據(jù)庫(kù):以“圖”為基本存儲(chǔ)模型,產(chǎn)品:Neo4j,InfoGrid,InfiniteGraph
NoSQL數(shù)據(jù)庫(kù)開(kāi)源軟件
1、Membase軟件
2、Hypertable
3、ApacheCassandra
4、MongoDB
在這里我們用的是MongoDB,下篇MongoDB簡(jiǎn)介,以及實(shí)例操作。
您可能感興趣的文章:- PHP對(duì)MongoDB[NoSQL]數(shù)據(jù)庫(kù)的操作
- 大數(shù)據(jù)時(shí)代的數(shù)據(jù)庫(kù)選擇:SQL還是NoSQL?
- 8種主流NoSQL數(shù)據(jù)庫(kù)系統(tǒng)特性對(duì)比和最佳應(yīng)用場(chǎng)景
- 初識(shí)NoSQL NoSql數(shù)據(jù)庫(kù)入門(mén) NoSql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
- NoSQL反模式 - 文檔數(shù)據(jù)庫(kù)篇
- 最新統(tǒng)計(jì)排名前十的SQL和NoSQL數(shù)據(jù)庫(kù)排行榜
- 純Python開(kāi)發(fā)的nosql數(shù)據(jù)庫(kù)CodernityDB介紹和使用實(shí)例
- NoSQL和Redis簡(jiǎn)介及Redis在Windows下的安裝和使用教程
- 關(guān)于NoSQL之MongoDB的一些總結(jié)
- NoSQL數(shù)據(jù)庫(kù)的分布式算法詳解
- 深入解析NoSQL數(shù)據(jù)庫(kù)的分布式算法(圖文詳解)
- NoSQL開(kāi)篇之為什么要使用NoSQL
- 8 種常用的 NoSQL 數(shù)據(jù)庫(kù)系統(tǒng)對(duì)比分析
- NoSQL 數(shù)據(jù)庫(kù)你應(yīng)該了解的 10 件事