工作中遇到的挑戰:
1,高併發讀寫
web2.0**,資料庫併發負載非常高,往往達到每秒上萬次的讀寫請求
2,高容量儲存和高效儲存
web2.0**通常需要在後台資料庫中儲存海量資料,如何儲存海量資料並進行高效的查詢往往是乙個挑戰
3,高擴充套件性和高可用性
隨著系統的使用者量和訪問量與日俱增,需要資料庫能夠很方便的進行擴充套件、維護
傳統關係型資料庫的瓶頸:
1,無法應對每秒上萬次的讀寫請求,硬碟io此時也將變為效能瓶頸
2,表中儲存記錄數量有限,橫向可擴充套件能力有限,縱向資料可承受能力也是有限的,面對海量資料,勢必涉及到分庫分表,難以維護
大資料查詢sql效率極低,資料量到達一定程度時,查詢時間會呈指數級別增長
3,難以橫向擴充套件,無法簡單地通過增加硬體、服務節點來提高系統效能
對於需要24小時不間斷提供服務的**來說,資料庫公升級、擴充套件將是一件十分麻煩的事,往往需要停機維護,資料遷移,為了避免服務間斷,如果**使用伺服器集群,則根據集群策略,需要相應的考慮主從一致性、集群擴充套件性等一系列問題
nosql資料庫的優點:
1,海量資料下,讀寫效能優異
2,資料模型靈活
3,資料間無關係,易於擴充套件
nosql資料庫分類:
1,鍵值儲存資料庫
代表資料庫:redis
適用場景:會話資訊,使用者配置資訊,購物車
2,列儲存資料庫
代表資料庫:bigtable,cassandra,hbase
適用場景:事件記錄,內容管理,部落格平台
不適合需要acid事務的場合
3,文件型資料庫
代表資料庫:mongodb
代表資料庫:neo4j
為什麼要使用NoSQL
前面 為什麼要使用nosql 和 關聯式資料庫還是nosql資料庫 兩篇從大體上介紹了為什麼要用nosql,何時該用nosql。經常有朋友遇到困惑,看到nosql的介紹,覺得很好,但是卻不知道如何正式用到自己的專案中。很大的原因就是思維固定在mysql中了,他們問得最多的問題就是用了nosql,我如...
為什麼在NoSQL上使用TimescaleDB?
與一般nosql資料庫 例如mongodb,cassandra 或更專門的時間導向資料庫 例如influxdb,kairosdb 相比,timescaledb提供了定性和定量差異 普通sql 即使在規模上,timescaledb也可以為時間序列資料提供標準sql查詢的功能。大多數 所有?nosql資...
為什麼要使用NoSQL資料庫
工作中遇到的挑戰 1,高併發讀寫 web2.0 資料庫併發負載非常高,往往達到每秒上萬次的讀寫請求 2,高容量儲存和高效儲存 web2.0 通常需要在後台資料庫中儲存海量資料,如何儲存海量資料並進行高效的查詢往往是乙個挑戰 3,高擴充套件性和高可用性 隨著系統的使用者量和訪問量與日俱增,需要資料庫能...