在大數(shù)據(jù)高速發(fā)展的今天,數(shù)據(jù)量在不斷的增加,傳統(tǒng)的數(shù)據(jù)庫可能不能滿足人們的需求了,這個(gè)時(shí)候新霸哥注意到了NOSQL出現(xiàn)了可以解決這個(gè)問題。我們知道sql數(shù)據(jù)庫可以存儲(chǔ)數(shù)據(jù)和處理數(shù)據(jù),但是NOSQL最大的一個(gè)優(yōu)勢(shì)就是在大數(shù)據(jù)這方面,能夠深度處理大數(shù)據(jù),分析數(shù)據(jù),從大量的數(shù)據(jù)中獲取有用的資源。 新霸哥發(fā)現(xiàn)關(guān)系型數(shù)據(jù)庫本身基于關(guān)系代數(shù)的數(shù)學(xué)理論,是很好的抽象,但是nosql的抽象沒有太多的數(shù)學(xué)基礎(chǔ),數(shù)學(xué)總是不會(huì)過時(shí)的。從計(jì)算機(jī)本身來說,關(guān)系型數(shù)據(jù)庫的存儲(chǔ)也是隨著機(jī)械硬盤的興起而發(fā)展的,關(guān)系型數(shù)據(jù)庫對(duì)數(shù)據(jù)塊的處理,比現(xiàn)在最流行的nosql強(qiáng)很多,而且由于約束的存在,存儲(chǔ)效率很高,根本不是那些nosql能比的。這一點(diǎn)新霸哥很佩服。 在云計(jì)算高速發(fā)展的今天,云計(jì)算兼具SQL和NoSQL數(shù)據(jù)庫的益處。云環(huán)境中的關(guān)系型存儲(chǔ)通常是以服務(wù)形式提供的,是可復(fù)制、高可用性且分布式的,極大地提高了橫向擴(kuò)展能力。同時(shí)托管于云服務(wù)中的NoSQL數(shù)據(jù)庫也天然享有自動(dòng)分片的好處,能夠階段性地靈活彈性處理,集成高速緩存和巨大的計(jì)算能力來捕獲、存儲(chǔ)和分析大數(shù)據(jù)。 數(shù)據(jù)量很少的情況下,就不用考慮性能了,分布式什么都不用考慮了,新霸哥也注意到了NoSQL在這種情況下最大的劣勢(shì)就是沒有schema。 NoSQL不會(huì)取代RDBMS,可能很多人會(huì)有疑問,RDBMS比如說MySQL通過sharding可以做到NoSQL所能做的一切,除此之外RDBMS有schema(也可以設(shè)計(jì)成schemaless),支持SQL,健壯的ACID。一般來說,現(xiàn)在的RDBMS完全可以做NoSQL所有可以做的事情,反過來就不是這樣了。舉個(gè)非常形象的例子,要在MySQL上加一層key-value接口不難,如果要在任何NoSQL上加能和MySQL匹敵的Query Optimizer和Transaction support不是件簡(jiǎn)單的事情。 NoSQL想解決的問題RDBMS都能解決,它的理念會(huì)被融入到RDBMS中,其實(shí)在實(shí)際應(yīng)用中真正適合NoSQL應(yīng)用的場(chǎng)景只是cache。 新霸哥發(fā)現(xiàn)SQL數(shù)據(jù)庫大多數(shù)比較昂貴,但是NoSQL數(shù)據(jù)庫通常都是開源的。事實(shí)上,兩種類型數(shù)據(jù)庫都有開源的和商業(yè)的。常見的SQL 數(shù)據(jù)庫有微軟公司的SQL Server,MySQL,SQLite,Oracle和PostGres。現(xiàn)在非常流行的NoSQL數(shù)據(jù)庫有Couchbase,MongoDB,Redis,BigTable和RavenDB。這也是現(xiàn)在比較主流的數(shù)據(jù)存儲(chǔ)方式。 其實(shí)無論是SQL還是NOSQL最重要的還是能夠根據(jù)實(shí)際的情況來選擇,這樣才能夠充分的利用資源。愛好大數(shù)據(jù)的朋友可以關(guān)注新霸哥。 |
|