【數據庫】——NoSQL數據庫簡單介紹

      網友投稿 905 2025-03-31

      一、NoSQL概述

      1.NoSQL簡介

      NoSQL是一個概念,泛指非關系型的數據庫。有時稱為"Not only SQL"不僅僅是SQL,包括但不限于鍵值存儲數據庫、文檔型數據庫、搜索引擎數據庫、列存儲數據庫、圖形數據庫。

      2.為什么用NoSQL

      傳統的關系型數據庫如MySQL、SQL Server、Oracle等都是將復雜的數據結構歸結為簡單的二元關系(即二維表形式),能夠使用SQL語句進行復雜的查詢并且支持事務。但是隨著互聯網web2.0網站的興起,傳統的關系數據庫在處理web2.0網站,特別是超大規模和高并發的社交網絡類型的web2.0純動態網站,面臨著很多諸如在巨大數據量下查詢緩慢,單一的關系型數據模型難以應對數據種類復雜等情況。這時就需要用到NoSQL數據庫了。

      NoSQL 對 SQL 做出了很好的補充。在實際開發中,有很多業務需求,并不需要完整的關系型數據庫功能,非關系型數據庫的功能就足夠使用了。這種情況下,使用性能更高、成本更低的非關系型數據庫當然是更明智的選擇。比如:日志收集、排行榜、定時器等。

      3.NoSQL的優勢及特點

      易擴展

      NoSQL數據庫種類繁多,但是一個共同的特點都是去掉關系數據庫的關系型特性。數據之間無關系,這樣就非常容易擴展。

      【數據庫】——NoSQL數據庫簡單介紹

      大數據量,高性能

      NoSQL數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優秀。這得益于它的無關系性,數據庫的結構簡單。

      靈活的數據模型

      NoSQL無須事先為要存儲的數據建立字段,隨時可以存儲自定義的數據格式。而在關系數據庫里,增刪字段是一件非常麻煩的事情。如果是非常大數據量的表,增加字段將會非常復雜且消耗時間,這點在大數據量的Web 2.0時代尤其明顯。

      高可用

      NoSQL在不太影響性能的情況,就可以方便地實現高可用的架構。比如Cassandra、HBase模型,通過復制模型也能實現高可用。

      NoSQL在不同時期的詮釋

      1970:NoSQL = We have no SQL

      1980:NoSQL = Know SQL

      2000:NoSQL = No SQL!

      2005:NoSQL = Not only SQL

      2013:NoSQL = No, SQL!

      這說明了,NoSQL是對SQL的補充,不管如何補充也都離不開SQL。

      二、NoSQL的分類

      鍵值存儲數據庫

      鍵值型數據庫通過 Key-Value 鍵值的方式來存儲數據,Key 作為唯一的標識符,優點是查找速度快,在這方面明顯優于關系型數據庫,缺點是無法像關系型數據庫一樣使用條件過濾(比如 WHERE),如果你不知道去哪里找數據,就要遍歷所有的鍵,這就會消耗大量的計算。

      鍵值型數據庫典型的使用場景是作為內存緩存。

      Redis

      redis是內存高速緩存數據庫,基于高級的key——value存儲系統,其中value支持五種數據類型:

      1.字符串(strings)

      2.字符串列表(lists)

      3.字符串集合(sets)

      4.有序字符串集合(sorted sets)

      5.哈希(hashes)

      Redis還支持事務和數據的持久化,能夠快速的增刪。應用場景有排行榜、秒殺、抽獎。

      文檔型數據庫

      文檔型數據庫可存放并獲取文檔,可以是XML、JSON等格式。在數據庫中文檔作為處理信息的基本單位,一個文檔就相當于一條記錄。文檔數據庫所存放的文檔,就相當于鍵值數據庫所存放的“值”。

      MongoDB

      MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。Mongo最大的特點是它支持的查詢語言非常強大,在海量數據中查詢速度非常快,支持分布式文件系統

      搜索引擎數據庫

      關系型數據庫采用了索引提升檢索效率,但是針對全文索引效率卻較低。搜索引擎數據庫是應用在搜索引擎領域的數據存儲形式,由于搜索引擎會爬取大量的數據,并以特定的格式進行存儲,這樣在檢索的時候才能保證性能最優。核心原理是“倒排索引”。

      elasticsearch

      elasticsearch是一個高擴展的分布式全文檢索引擎,它可以近乎實時的存儲、檢索數據。

      分布式實時文件存儲,并將每一個字段都編入索引,使其可以被搜索。

      實時分析的分布式搜索引擎。

      可以擴展到上百臺服務器,處理PB級別的結構化或非結構化數據。

      列存儲數據庫

      列式數據庫是相對于行式存儲的數據庫,Oracle、MySQL、SQL Server 等數據庫都是采用的行式存儲,而列式數據庫是將數據按照列存儲到數據庫中,這樣做的好處是可以大量降低系統的 I/O,適合于分布式文件系統,不足在于功能相對有限。

      HBase

      HBASE是一個高可靠性、高性能、面向列、可伸縮的非關系型數據庫,利用 Hadoop 分布式文件系統(Hadoop Distributed File System,HDFS)提供分布式數據存儲,一個表可以有上十億行,上百萬列。在實時讀寫、隨機訪問超大規模數據集方面十分優秀,多用于數據分析、數據挖掘。

      圖形數據庫

      圖形數據庫,利用了圖這種數據結構存儲了實體(對象)之間的關系。圖形數據庫最典型的例子就是社交網絡中人與人的關系,數據模型主要是以節點和邊(關系)來實現,特點在于能高效地解決復雜的關系問題。如社交網絡中人物之間的關系,如果用關系型數據庫則非常復雜,用圖形數據庫將非常簡單。

      Neo4J

      Neo4j是一款強健的,可伸縮的基于Java語言編寫的高性能圖數據庫。能夠高效的解決復雜的數據關系。比如好友推薦、商品推薦等就是使用了基于Neo4j的智能推薦引擎。

      NoSQL 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:不能啟動對象的源應用程序(wps顯示不能啟動此對象的源應用程序)
      下一篇:ERP項目實施和成本核算的工作分解結構
      相關文章
      久久亚洲精品中文字幕| 亚洲一区二区影视| 亚洲一区二区三区91| 亚洲乱码日产一区三区| 久久精品国产亚洲AV麻豆网站| 麻豆亚洲av熟女国产一区二| 亚洲国产精品福利片在线观看| 中文字幕亚洲一区二区三区| 在线观看亚洲精品国产| 亚洲熟妇中文字幕五十中出| 亚洲精品无码不卡在线播HE| 亚洲国产精品无码专区影院| 久久久久久亚洲av成人无码国产| 久久亚洲精品无码| 日木av无码专区亚洲av毛片| 精品日韩亚洲AV无码| 亚洲一区动漫卡通在线播放| 亚洲小说图区综合在线| 亚洲av乱码中文一区二区三区 | 国产精品亚洲四区在线观看| 亚洲精品福利网站| 精品丝袜国产自在线拍亚洲| 亚洲欧美一区二区三区日产| 处破女第一次亚洲18分钟| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲免费在线视频| 亚洲国产精品乱码在线观看97| 亚洲一级毛片免费看| 亚洲中文无码卡通动漫野外| AV激情亚洲男人的天堂国语| 国产亚洲情侣一区二区无码AV| 亚洲国产日韩在线视频| 久久久久亚洲精品天堂| 国产91在线|亚洲| 在线亚洲精品视频| 亚洲一区二区女搞男| 久久精品国产亚洲av影院| 亚洲av午夜精品无码专区| 亚洲国产成人手机在线观看| 亚洲真人日本在线| 亚洲网址在线观看你懂的|