<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      字節面試官:你用過哪些數據庫?我自信回答:MySQL!他:回去等通知吧

      0
      分享至

      你是小阿巴,正在公司敲代碼。

      老板走過來說:小阿巴,給咱們網站加個商品搜索功能吧。

      你拍拍胸脯:沒問題,我直接用 MySQL 數據庫的 LIKE 模糊查詢實現搜索,1 小時上線~


      結果上線后,用戶點擊搜索,卡了半天沒反應,老板氣得臉都綠了。

      你急的汗流浹背,只能找到號稱『后端之狗』的魚皮求助:阿巴阿巴,俺用 MySQL 搞不定,咋辦啊……

      魚皮:不是哥們,又不是只有 MySQL 這一個數據庫。

      下面我來帶你認識 10 種不同類型的數據庫,讓你知道什么場景該用什么數據庫。


      點個收藏,我們開始~

      ?? 推薦觀看視頻版,有動畫更好理解:https://www.bilibili.com/video/BV1ChkjBsEzq

      關系型數據庫

      首先是我們接觸最多的、也是后端入門必學的 關系型數據庫

      在關系型數據庫中,數據以 的形式進行組織和存儲,每個表就像一個 Excel 表格,包含多個 和多個


      比如你要做個學生管理系統,把學生信息存儲到關系型數據庫中,結構大概是這樣的:

      學號

      學生姓名

      所屬班級號

      1

      小李

      1

      2

      小魚

      2

      3

      小皮

      3

      上述學生表格中,每一行代表一個學生的信息,每一列代表學生的一個屬性。


      我們可以使用結構化查詢語言 SQL 來對關系型數據庫表的數據進行靈活地查詢、選擇、過濾等。


      而關系型數據庫最大的特點,就是表和表之間可以 存在關系。比如學生管理系統中還可以有班級表,結構如下:

      班號

      班級名稱

      1

      快樂班

      2

      泰酷班

      3

      躺平班

      如果我想知道某個學生所屬的班級信息,只需要在查詢時將學生表的 所屬班級號 和班級表的 班號 進行關聯,而不用把所有表格的列存儲在一起,非常靈活。


      通過 SQL 可以連接查詢多張表:


      得到下面的查詢結果:

      學號

      學生姓名

      所屬班級號

      班級名稱

      1

      小李

      1

      快樂班

      2

      小魚

      2

      泰酷班

      3

      小皮

      3

      躺平班

      此外,關系型數據庫遵循 ACID 原則(原子性、一致性、隔離性和持久性),通過 事務 機制可以保證多個操作同時進行時,數據的狀態保持一致。


      舉個例子,A 給 B 轉賬,A 扣錢的同時 B 也會加錢,不會出現 A 扣了錢 B 卻沒收到錢的情況。


      正因為關系型數據庫既能靈活查詢、又能準確寫入,所以它幾乎可以被應用在任何項目中。比如各類管理系統、數據分析系統、金融銀行系統等。

      比較主流的關系型數據庫產品有:

      • MySQL:開源易學,后端開發必學的數據庫

      • Oracle:人稱 “甲方的數據庫”,主要是大型企業和政府機構在用,功能強大但授權費用昂貴

      • PostgreSQL:開源界的天花板,功能最全面

      • SQL Server:微軟出品,和 Windows 系統、.NET 生態集成度高

      • SQLite:整個數據庫就是一個文件,不需要服務器,非常輕量。被廣泛應用在手機 APP、瀏覽器中,你的手機里可能有幾十個 SQLite。

      對于大多數項目,用 MySQL 等關系型數據庫來存儲數據就足夠了。但如果要存儲的數據間沒有復雜關系、或者需要極致的性能時,它并不是最佳選擇。

      你點點頭:俺知道,就好比俺要寫一篇文章,沒必要非得把內容塞進 Excel 表格里,直接放到 Word 文檔里會更方便編輯和閱讀。


      魚皮:沒錯,這時就需要與關系型數據庫互補的 非關系型數據庫

      非關系型數據庫

      非關系型數據庫又叫 NoSQL(Not Only SQL),適合存儲關系不強的、結構靈活的、需要快速訪問的數據。

      打個比方,關系型數據庫像圖書館,書籍分類明確、擺放有序、借閱有規矩;非關系型數據庫像你的書桌,怎么順手怎么放,拿取方便最重要。


      在實際項目開發中,最常用的非關系型數據庫是 KV 數據庫和文檔數據庫。

      KV 鍵值數據庫

      KV 即 Key-Value,數據是以 鍵值對 的方式存儲在數據庫中的,可以理解為一個超大的 HashMap,數據庫中存儲的每個鍵都 唯一對應 一個值。


      比如存儲用戶信息和熱門商品信息,結構是這樣的:

      Key 鍵

      Value 值

      user:1001

      {"name":"魚皮", "age":25}

      product:hot

      ["商品1", "商品2", "商品3"]

      鍵和值都可以是任意類型的數據,包括字符串、數字、數組、JSON 對象等,非常靈活。


      由于 KV 存儲的結構簡單清晰,我們能夠很輕松地根據某個鍵查找出對應的值,就像查字典一樣,讀寫數據的性能都非常高。


      此外,KV 數據庫的可擴展性很強。因為數據間不存在直接關聯,我們可以把鍵值對分散到多臺機器上存儲,通過數據分片、負載均衡等策略來支持海量數據的高并發訪問。


      由于高性能和高可擴展性,KV 數據庫被廣泛應用于緩存、分布式會話、分布式鎖、實時統計等場景。

      最經典的 KV 數據庫肯定是 Redis,它是開源的、基于內存的數據庫,不僅支持豐富的數據類型和功能,還有持久化等重要特性,也是后端必學的技術。其他的常用 KV 數據庫有 Memcached、Etcd、LevelDB、RocksDB 等。


      文檔數據庫

      文檔數據庫也屬于非關系型數據庫。顧名思義,它適用于存儲和管理 半結構化的 文檔數據,數據一般以 JSON(BSON)格式存儲。


      相比于關系型數據庫中嚴格定義的表格行列,文檔數據庫的數據結構更像是一份份獨立的文檔,每個文檔都可以包含不同類型和格式的數據,結構非常靈活。


      比如存儲博客文章,結構是這樣的:

      文檔 ID

      文檔數據

      1

      {"_id": 1, "title": "文章標題1", "content": "這是文章1的內容"}

      2

      {"_id": 2, "title": "文章標題2", "author": "程序員魚皮"}

      你撓撓頭:誒,文檔 1 和文檔 2 的字段都不一樣啊,這也行?


      魚皮:沒錯,這就是文檔數據庫的靈活性。當我們要給某個文檔新增一個字段時,不需要像關系型數據庫那樣先改表結構,直接加就完事了。


      而且支持水平擴展,可以分散到多臺服務器上存儲,適用于內容管理系統、博客平臺、電商商品詳情頁等場景。


      推薦學習的文檔數據庫是 MongoDB,因為它存儲的就是 JSON(BSON)格式數據,對前端同學很友好,入門難度也很低。


      特定場景的數據庫

      雖然關系型和非關系型數據庫已經能夠滿足大部分場景,但在一些特殊場景下,使用專門設計的數據庫會更高效。就像你可以用菜刀砍樹,但用斧子會更快更省力。

      搜索引擎數據庫

      專門為搜索功能設計的數據庫。它能存儲和管理大量文本數據,提供快速、準確、靈活的全文檢索功能。


      你撓撓頭:憑什么它能做到這些呢?

      魚皮:秘密在于它使用了 倒排索引 的方式存儲數據。

      以存儲博客文檔為例,關系型數據庫的存儲結構是:

      文檔 id

      文檔內容

      1

      感謝關注魚皮

      2

      魚皮是一名程序員

      3

      感謝關注編程導航

      我們能夠根據 id 來查找到對應的單篇文檔,也可以通過搜索精確的關鍵詞,來查找到多篇文檔。

      比如搜索 "魚皮",能搜出文檔 1、2。


      但是,如果你搜索 "魚皮程序員",是無法得到搜索結果的,因為沒有任何一個文檔的內容完全包含 "魚皮程序員" 這個詞。


      而在搜索引擎數據庫中,首先會將文檔內容按照單詞進行分割,也就是 分詞。然后 建立倒排索引,也就是構建 單詞到文檔 id 的映射


      有了上述的倒排索引,當用戶搜索 "魚皮程序員" 時,搜索引擎數據庫會先對搜索詞進行分詞,得到 "魚皮" 和 "程序員",然后根據這兩個詞匯就能找到文檔 id 1 和 2 了。不用再一行一行遍歷表內所有的數據,實現了更靈活、快速的搜索。


      此外,搜索引擎數據庫還支持 相關性排序,能夠根據用戶的搜索詞對所有搜索結果進行打分,把最相關的文檔排到最上面,就像谷哥度娘那樣。


      主流的搜索引擎數據庫技術有 Elasticsearch、Apache Solr 等,建議只學習 Elasticsearch 就夠了,它的社區最活躍、學習資料最豐富。

      向量數據庫

      向量數據庫是專門用于存儲和處理 高維向量數據 的數據庫,也是 AI 時代最火的數據庫。

      你好奇道:啥是向量?

      魚皮:簡單來說,向量是一個數字數組,每個數字代表一個 特征 維度。


      舉個例子,在人臉識別系統中,我們需要通過人臉的特征來判斷是否為同一個人。每張人臉圖像都可以通過 AI 模型轉換成一個向量,這個向量可能包含成百上千個數字,每個數字代表圖像的一個 抽象 特征維度。


      實際上,很難說清楚每個數字代表什么,但便于理解,你可以 想象 下標 0 代表鼻子大小,下標 1 代表眼睛距離等等,以此類推。


      之后通過余弦相似度等算法來計算兩個向量的相似度,就能判斷出兩張人臉是不是同一個人。


      向量數據庫能夠高效存儲這些多維向量數據、快速計算向量的相似度、并實現各種不同算法的相似性搜索。適用于人臉識別、推薦系統、語義搜索等場景。


      在 AI 時代,可以用向量數據庫給 AI 提供特定領域的知識庫,大大提升回答的準確性。


      主流的向量數據庫技術有 Milvus、Pinecone 等,像 PostgreSQL 關系型數據庫也通過插件支持存儲向量類型的數據。


      圖數據庫

      圖數據庫是專門用于存儲和處理 圖結構數據 的數據庫。

      注意,這里的 “圖” 可不是照片或圖表,而是數學中的圖論概念,由節點(Node)和邊(Edge)構成的圖形結構。


      比如我們要存儲一個社交網絡的朋友關系,對應的圖可能是由多個用戶節點和好友關系邊組成的。


      在圖數據庫中,需要 2 個表格來存儲。

      1)節點信息表:

      節點 id

      節點名

      1

      魚皮

      2

      阿巴

      3

      編程導航

      2)邊信息表:

      邊 id

      邊類型

      起始節點

      結束節點

      1

      好友

      1

      2

      2

      好友

      2

      3

      通過存儲這些節點和邊的信息,圖數據庫就能快速查詢和分析復雜的關系網絡。比如查找 “朋友的朋友”、計算兩個用戶之間的最短路徑、發現社交圈子等等。


      因此,圖數據庫非常適合構建社交網絡、推薦系統、知識圖譜等。

      比較主流的圖數據庫有 Neo4j、TigerGraph 等,都支持復雜的圖算法和分布式擴展,能夠通過并行計算加速圖形處理。

      時序數據庫

      時序數據庫是專門用于高效存儲和處理 時間序列 的數據庫。

      時間序列是指以時間作為主要維度的數據序列,也就是每個數據單元都帶著 時間戳,按時間順序排列。


      舉個例子,在服務器監控系統中,我們需要每分鐘記錄服務器的 CPU 使用率、內存使用率等指標,數據結構如下:

      時間戳

      設備ID

      CPU使用率

      內存使用率

      2026-01-08 10:00

      Server001

      45%

      60%

      2026-01-08 10:01

      Server001

      48%

      62%

      2026-01-08 10:02

      Server001

      52%

      65%

      有了這些數據,我們就能夠按照時間范圍進行高效查詢、做聚合分析(比如計算過去 1 小時的平均 CPU 使用率)、進行數據可視化展示。


      因此,時序數據庫非常適用于物聯網設備監控、服務器性能監控、金融交易數據分析等場景。

      主流的時序數據庫技術有 InfluxDB、TimescaleDB 等,一般會配合 Grafana 監控看板一起使用,實現數據存儲 + 快速可視化。你在運維團隊看到的那些酷炫的實時監控大屏,背后就是時序數據庫在支撐。


      列存數據庫

      區別于傳統的行式數據庫,列存數據庫 以列作為基本的存儲單位,把每一列的數據存儲在一起。

      拿公司每天的收入來舉個例子,傳統的行式數據庫是這么存儲的:

      日期

      銷售額

      成本

      利潤

      2026-01-01

      500

      600

      -100

      2026-01-02

      280

      450

      -170

      2026-01-03

      290

      480

      -190

      而在列存數據庫中,底層大概是這么存儲的,看起來像是對矩陣做了一次轉置:

      日期

      2026-01-01

      2026-01-02

      2026-01-03

      銷售額

      500

      280

      290

      成本

      600

      450

      480

      利潤

      -100

      -170

      -190


      如果我們要統計這 3 天公司的總利潤,傳統的行式數據庫需要依次讀取每一行的數據,然后再提取出利潤這一列進行計算;而列存數據庫直接讀取利潤這一列就行了,不用管其他列,大大提高了數據分析和聚合操作的效率。


      而且從計算機底層來分析,把相同類型的數據在同一列中連續存儲,可以實現更好的數據壓縮效果、節約存儲空間。


      因此,列存數據庫適用于報表生成、數據倉庫、商業智能分析等場景。

      主流的列存數據庫技術有 ClickHouse、Apache HBase、Druid 等,都是大數據開發的必修課。

      融合型數據庫

      前面我們講了關系型和非關系型數據庫,要么強調靈活查詢、要么強調性能和擴展,各有側重。

      但有些數據庫偏偏 “既要又要”,要把兩者的優點融合到一起,這就是接下來要講的融合型數據庫。

      NewSQL 數據庫

      NewSQL 是一類新興的數據庫,它融合了傳統關系型和非關系型數據庫的優點。既有傳統 SQL 數據庫的 ACID 特性和事務支持,又有 NoSQL 的水平擴展能力和高性能。支持標準 SQL 查詢、分布式架構、自動容錯和故障恢復,可以替代傳統的分庫分表方案,特別適用于大廠的高并發系統。


      主流的 NewSQL 數據庫有 TiDB、CockroachDB、Google Spanner 等。其中 TiDB 是國產之光,支持 HTAP(混合事務分析處理),而且完全兼容 MySQL 協議,遷移成本低;CockroachDB 人稱 “蟑螂數據庫”,因為它像蟑螂一樣頑強,集群中一個節點掛了,其他節點依然能正常服務,打不死。


      多模數據庫

      區別于前面所有存儲單一數據模型的數據庫,多模數據庫能夠直接在一個數據庫里同時存儲和處理 多種不同類型 的數據。比如關系型數據、文檔數據、圖形數據、鍵值對數據等等,非常靈活、省去了維護多個數據庫的麻煩。


      而且多模數據庫還支持跨模型事務,能夠更輕松地實現數據的一致性和完整性,不需要手動實現跨庫事務、跨庫數據同步這些復雜操作。


      雖然聽起來很厲害,但實際開發中很少用,因為樣樣通樣樣松,多模數據庫的性能往往不如專注單一場景的數據庫。

      原生的多模數據庫技術有 ArangoDB、OrientDB 等,它們從設計之初就是為多模式設計的。前面也提到,雖然 PostgreSQL 這樣的老牌關系型數據庫可以通過豐富的插件支持多種數據類型(比如 JSON 文檔、向量、地理空間數據等),但它的核心始終是關系模型,多模支持算是錦上添花,不過這也體現了 PostgreSQL 的強大。


      怎么選擇數據庫?

      你一臉懵逼:阿巴阿巴,你講了這么多數據庫,俺頭都大了,到底該選哪個?


      魚皮笑了笑:別慌,數據庫選型其實沒那么復雜。

      優先選用 MySQL / PostgreSQL + Redis,能覆蓋 90% 的項目需求。

      有特定功能或優化需求時,再選擇專業數據庫。比如需要搜索功能了,再加 Elasticsearch;要做 AI 知識庫了,再加向量數據庫。

      畢竟每多一個數據庫,就多一份運維工作和故障風險。


      你:學會了學廢了!對了魚皮,我還聽說過數據湖、數據倉庫,這些是啥啊?

      魚皮:簡單來說,數據倉庫是用來存儲和分析大量結構化數據的;數據湖更像個大水池,什么數據都能往里扔,包括日志、圖片、視頻這些非結構化數據。它們更多是大數據架構層面的概念。


      感興趣的話,點個關注,后面專門出一期講講~


      點擊下方關注魚皮,獲取免費編程學習路線、簡歷模板、面試題解、AI 知識庫、項目教程、交流群。

      一些對大家有用的資源:
      100+ 編程學習路線 / 實戰項目 / 求職指導
      100+ 簡歷模板
      300+ 企業面試題庫 mianshiya.com
      500+ AI 資源大全
      1 對 1 模擬面試
      動畫學算法教程

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      國米本賽季意甲15次利用角球情況得分,同期五大聯賽第一

      國米本賽季意甲15次利用角球情況得分,同期五大聯賽第一

      懂球帝
      2026-02-22 03:20:08
      任正非:“還過個屁年”

      任正非:“還過個屁年”

      深度報
      2026-02-20 22:07:32
      胡錫進又開始和稀泥了?這次他“抹掉”了孔慶東罵別人的那句“雜種”

      胡錫進又開始和稀泥了?這次他“抹掉”了孔慶東罵別人的那句“雜種”

      西域都護
      2026-02-21 01:03:30
      驚掉下巴!陳曉從暴瘦“大叔”秒變中式大帥哥,咋做到的?

      驚掉下巴!陳曉從暴瘦“大叔”秒變中式大帥哥,咋做到的?

      可樂談情感
      2026-02-22 00:10:10
      幫我看看,我是不是玩游戲被表白了......

      幫我看看,我是不是玩游戲被表白了......

      超級數學建模
      2026-02-20 22:30:53
      歷時144年,全球最高的教堂正式封頂!

      歷時144年,全球最高的教堂正式封頂!

      GA環球建筑
      2026-02-21 23:13:08
      韓國執政黨:強烈批評法院對尹錫悅作出的判決結果。

      韓國執政黨:強烈批評法院對尹錫悅作出的判決結果。

      王姐懶人家常菜
      2026-02-21 06:17:29
      美全國州長協會宣布退出白宮會議

      美全國州長協會宣布退出白宮會議

      財聯社
      2026-02-20 13:24:09
      男籃后衛線大調整!曝徐杰因傷無緣世預賽,郭士強或提拔菜鳥新秀

      男籃后衛線大調整!曝徐杰因傷無緣世預賽,郭士強或提拔菜鳥新秀

      老葉評球
      2026-02-21 23:03:08
      《鏢人》單日票房升至第2,觀眾催拍續集,吳京回應:爭取有第二部;《鏢人2》去年7月已備案公示,故事梗概公開

      《鏢人》單日票房升至第2,觀眾催拍續集,吳京回應:爭取有第二部;《鏢人2》去年7月已備案公示,故事梗概公開

      極目新聞
      2026-02-20 21:58:32
      42歲王濛再破天花板!退役12年,再次讓李琰和整個冰壇“沉默”了

      42歲王濛再破天花板!退役12年,再次讓李琰和整個冰壇“沉默”了

      翰飛觀事
      2026-02-16 11:29:39
      成都藏著所“低調王牌”高校,被稱能源界“黃埔軍校”,軍車搬家成校史佳話

      成都藏著所“低調王牌”高校,被稱能源界“黃埔軍校”,軍車搬家成校史佳話

      解說阿洎
      2026-02-21 21:58:51
      康輝哽咽,撒貝寧落淚,朱迅痛哭:他們一生再優秀也對不起父母

      康輝哽咽,撒貝寧落淚,朱迅痛哭:他們一生再優秀也對不起父母

      新時代精神
      2026-02-11 15:28:14
      墨菲:趙心童的發揮非常好,他在比賽中段的表現簡直就沒法打!

      墨菲:趙心童的發揮非常好,他在比賽中段的表現簡直就沒法打!

      世界體壇觀察家
      2026-02-21 06:50:34
      總票房突破70億!暫列全球第一

      總票房突破70億!暫列全球第一

      可樂談情感
      2026-02-22 02:01:21
      剛回國的留子,戰斗力有多強?網友:給小吃攤老板嚇哭了!

      剛回國的留子,戰斗力有多強?網友:給小吃攤老板嚇哭了!

      夜深愛雜談
      2026-01-27 18:24:46
      壓力突然加碼,美國點名要人,委內瑞拉犯難,9人去留牽動全局

      壓力突然加碼,美國點名要人,委內瑞拉犯難,9人去留牽動全局

      阿離家居
      2026-02-22 02:06:45
      待了幾天鄭州 我要曝光一下 當地人的素質 全然顛覆我此前的認知

      待了幾天鄭州 我要曝光一下 當地人的素質 全然顛覆我此前的認知

      水泥土的搞笑
      2026-02-21 20:09:10
      戴手套!戴手套!徒手操作可能導致心臟驟停!

      戴手套!戴手套!徒手操作可能導致心臟驟停!

      吉刻新聞
      2026-02-12 01:31:10
      蘇翊鳴日本教練全球招徒指導歐美選手 只考慮30秒就拒絕成為中國隊主帥

      蘇翊鳴日本教練全球招徒指導歐美選手 只考慮30秒就拒絕成為中國隊主帥

      煙潯渺渺
      2026-02-21 01:40:48
      2026-02-22 04:32:49
      程序員魚皮 incentive-icons
      程序員魚皮
      一手科技資訊和編程干貨
      38文章數 18關注度
      往期回顧 全部

      科技要聞

      智譜上市1月漲5倍,市值超越京東、快手

      頭條要聞

      貝加爾湖7名遇難者身份全部確認 1家4口僅1人生還

      頭條要聞

      貝加爾湖7名遇難者身份全部確認 1家4口僅1人生還

      體育要聞

      徐夢桃:這是我第一塊銅牌 給我換個吉祥物

      娛樂要聞

      黃曉明澳門賭博輸十幾億 本人親自回應

      財經要聞

      一覺醒來,世界大變,特朗普改新打法了

      汽車要聞

      比亞迪的“顏值擔當”來了 方程豹首款轎車路跑信息曝光

      態度原創

      旅游
      數碼
      游戲
      時尚
      家居

      旅游要聞

      上海的氣韻 | 馬上啟程來上博,博物館里過大年

      數碼要聞

      物理銷毀SSD:結果根本沒貫穿PCB!直接就扔到垃圾桶了

      卡婊總算玩明白了,《安魂曲》雙主角盤活生化30周年

      冬天穿衣盡量別露腿,這些基礎穿搭可嘗試,簡單大方又不挑人

      家居要聞

      本真棲居 愛暖伴流年

      無障礙瀏覽 進入關懷版