隨著網際網路的發展,當我們把一台伺服器一台伺服器變成兩台伺服器,當我們開始建立資料備份,當我們需要加乙個緩衝層,來調整所有的查詢,投入更多的硬體。
最後,需要將資料切分多個集群上,並重構大量的應用邏輯以適應這種切分。不久之後,你就會發現被自己數月前的設計資料結構限制住了。
隨著web2.0的興起,關係型資料庫本身無法克服的缺陷越來越明顯,主要表現為如下幾點。
1、對資料高併發讀寫的需求
2、對海量資料的高效率儲存和訪問的需求。
3、對資料庫的高可擴充套件性和高可用性的需求。
4、資料庫事務一致性需求。
5、資料庫寫實性和讀寫時性需求。
6、對複雜sql的查詢,特別是對關聯查詢的需求。
nosql是notonly sql的縮寫,nosql不使用sql作為查詢語言。其資料儲存可以不需要固定的**模式,也經常避免使用sql的join操作,一般有水平可擴充套件性的特徵。
1、nosql一詞最早出現在2023年,是carlo strozzi開發的乙個輕量、開源、不提供sql功能的關聯式資料庫。
2、2023年,last.fm的johan oskarsson發起了一次關於分布式開源資料庫的討論,來自rackspace的eric evans再次提出了nosql概念,這時的nosql主要是指非關係型、分布式、不提供資料庫設計模式。
3、2023年趨勢高漲,被定為「非關係型的」資料儲存,相對於關係型資料庫運用,這一概念無疑是一種全新思維的注入。
nosql具有如下幾點
優點:1、高併發讀寫
2、海量資料儲存
3、高可擴充套件性
4、高可用性
缺點:5、缺乏事務一致性
6、缺乏讀寫實時性
7、不支援複雜查詢
nosql資料庫型別
key-value:key指value的鍵值對,通常用hash table來實現
列式資料庫:同一列資料存在一起
文件型資料庫:key-value對應的鍵值對,value為結構化資料產品:mongodb
圖結構資料庫:以「圖」為基本儲存模型,產品:neo4j,infogrid,infinitegraph
1、membase軟體
2、hypertable
3、apachecassandra
4、mongodb
在這裡我們用的是mongodb,下篇著重說明mongodb,以及例項操作。
深入淺出viewport 一
viewport對於移動瀏覽器上的網頁展示比較重要,那麼我們為什麼需要設定viewport呢?viewport到底是個什麼東東?讓我們一起來抽絲剝繭,一點點的揭露它的真相。這裡是翻譯的文章,沒有逐字翻譯。viewport的作用是限制頁面頂級的包含元素,這聽起來可能有點模糊不清。舉個例子,假設你有乙個...
深入淺出AOP(一)
aop事實上非常早之前依照做出來了一些東西,之所以不敢說做出來了。是由於它是什麼?怎麼實現?做出來的東西是不是?先前一直查資料。查到的資料跟著做。到後來發現,aop越來越大,而非常多資料跟aop本身的思想有衝突的地方,所以還有非常多要學習的地方。能夠動態的加入和刪除在切面上的漏記而不影響原來的執行 ...
深入淺出sizeof
int佔 位元組,short佔 位元組 1.0 回答下列問題 答案在文章末尾 1.sizeof char 2.sizeof a 3.sizeof a 4.strlen a 如果你答對了全部四道題,那麼你可以不用細看下面關於sizeof的論述。如果你答錯了部分題目,那麼就跟著我來一起 關於sizeof...