一:nosql是什麼
nosql(nosql = not only sql ),意即「不僅僅是sql」,
泛指非關係型的資料庫。隨著網際網路web2.0**的興起,傳統的關聯式資料庫在應付web2.0**,特別是超大規模和高併發的sns型別的web2.0純動態**已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。nosql資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題,包括超大規模資料的儲存。
(例如谷歌或facebook每天為他們的使用者收集萬億位元的資料)。這些型別的資料儲存不需要固定的模式,無需多餘操作就可以橫向擴充套件。
二:能幹啥
1易擴充套件
nosql資料庫種類繁多,但是乙個共同的特點都是去掉關聯式資料庫的關係型特性。資料之間無關係,這樣就非常容易擴充套件。也無形之間,在架構的層面上帶來了可擴充套件的能力。
2大資料量高效能
nosql資料庫都具有非常高的讀寫效能,尤其在大資料量下,同樣表現優秀。這得益於它的無關係性,資料庫的結構簡單。
一般mysql使用query cache,每次表的更新cache就失效,是一種大粒度的cache,在針對web2.0的互動頻繁的應用,cache效能不高。而nosql的cache是記錄級的,
是一種細粒度的cache,所以nosql在這個層面上來說就要效能高很多了
3多樣靈活的資料模型
nosql無需事先為要儲存的資料建立字段,隨時可以儲存自定義的資料格式。而在關聯式資料庫裡,
增刪欄位是一件非常麻煩的事情。如果是非常大資料量的表,增加字段簡直就是乙個噩夢
4傳統rdbms vs nosql
rdbms
- 高度組織化結構化資料
- 結構化查詢語言(sql)
- 資料和關係都儲存在單獨的表中。
- 資料操縱語言,資料定義語言
- 嚴格的一致性
- 基礎事務
nosql
- 代表著不僅僅是sql
- 沒有宣告性查詢語言
- 沒有預定義的模式
-鍵 - 值對儲存,列儲存,文件儲存,圖形資料庫
- 最終一致性,而非acid屬性
- 非結構化和不可預知的資料
- cap定理
- 高效能,高可用性和可伸縮性
5怎麼玩
kv,cache,persistence,........
6:3v+3高
大資料時代的3v:海量volume,多樣variety,實時velocity
網際網路需求的3高:高併發,高可擴,高效能
7:當下的nosql經典應用
7.1當下的應用是sql和nosql一起使用
7.2阿里巴巴中文站商品資訊如何存放
看看阿里巴巴中文**首頁---以**/女包包為例----架構發展歷程
演變過程:
第五代架構使命:
1 商品基本資訊--名稱、**,出廠日期,生產廠商等--關係型資料庫:mysql/oracle目前**在去o化(也即拿掉oracle),
注意,**內部用的mysql是裡面的大牛自己改造過的:
為什麼去ioe:
2023年,王堅加盟阿里巴巴成為集團首席架構師,即現在的首席技術官。這位前微軟亞洲研究院常務副院長被馬雲定位為:將幫助阿里巴巴集團建立世界級的技術團隊,並負責集團技術架構以及基礎技術平台搭建。
在加入阿里後,帶著技術基因和學者風範的王堅就在阿里巴巴集團提出了被稱為「去ioe」(在it建設過程中,去除ibm小型機、oracle資料庫及emc儲存裝置)的想法,並開始把雲計算的本質,植入阿里it基因。
王堅這樣概括「去ioe」運動和阿里雲之間的關係:「去ioe」徹底改變了阿里集團it架構的基礎,是阿里擁抱雲計算,產出計算服務的基礎。「去ioe」的本質是分布化,讓隨處可以買到的commodity pc架構成為可能,使雲計算能夠落地的首要條件。
Redis NoSQL入門和概述(一)
nosql這個術語最早是在1998年被carlo strozzi命名在他的輕量的,開源的關係型資料庫上的,但是該資料庫沒有提供標準的sql介面 在2009年再次被eric evans提起,討論分布式開源資料庫的問題,這是的nosql主要指的非關係型,分布式的,不提供關係型的atomicity a c...
Redis NoSQL入門和概述(一)
nosql這個術語最早是在1998年被carlo strozzi命名在他的輕量的,開源的關係型資料庫上的,但是該資料庫沒有提供標準的sql介面 在2009年再次被eric evans提起,討論分布式開源資料庫的問題,這是的nosql主要指的非關係型,分布式的,不提供關係型的atomicity a c...
概述mysql MySQL概述及入門 二
mysql概述及入門 二 mysql架構 邏輯架構圖 執行流程圖 mysql的儲存引擎 查詢資料庫支援的儲存引擎 執行 show engines 多儲存引擎是mysql有別於其他資料庫的一大特性,儲存引擎是針對表的,mysql 5.5之後,預設的儲存引擎由myisam變為innodb。innodb ...