国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

字節(jié)面試官:你用過(guò)哪些數(shù)據(jù)庫(kù)?我自信回答:MySQL!他:回去等通知吧

0
分享至

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

老板走過(guò)來(lái)說(shuō):小阿巴,給咱們網(wǎng)站加個(gè)商品搜索功能吧。

你拍拍胸脯:沒(méi)問(wèn)題,我直接用 MySQL 數(shù)據(jù)庫(kù)的 LIKE 模糊查詢(xún)實(shí)現(xiàn)搜索,1 小時(shí)上線(xiàn)~


結(jié)果上線(xiàn)后,用戶(hù)點(diǎn)擊搜索,卡了半天沒(méi)反應(yīng),老板氣得臉都綠了。

你急的汗流浹背,只能找到號(hào)稱(chēng)『后端之狗』的魚(yú)皮求助:阿巴阿巴,俺用 MySQL 搞不定,咋辦啊……

魚(yú)皮:不是哥們,又不是只有 MySQL 這一個(gè)數(shù)據(jù)庫(kù)。

下面我來(lái)帶你認(rèn)識(shí) 10 種不同類(lèi)型的數(shù)據(jù)庫(kù),讓你知道什么場(chǎng)景該用什么數(shù)據(jù)庫(kù)。


點(diǎn)個(gè)收藏,我們開(kāi)始~

?? 推薦觀看視頻版,有動(dòng)畫(huà)更好理解:https://www.bilibili.com/video/BV1ChkjBsEzq

關(guān)系型數(shù)據(jù)庫(kù)

首先是我們接觸最多的、也是后端入門(mén)必學(xué)的 關(guān)系型數(shù)據(jù)庫(kù)。

在關(guān)系型數(shù)據(jù)庫(kù)中,數(shù)據(jù)以 的形式進(jìn)行組織和存儲(chǔ),每個(gè)表就像一個(gè) Excel 表格,包含多個(gè) 和多個(gè) 。


比如你要做個(gè)學(xué)生管理系統(tǒng),把學(xué)生信息存儲(chǔ)到關(guān)系型數(shù)據(jù)庫(kù)中,結(jié)構(gòu)大概是這樣的:

學(xué)號(hào)

學(xué)生姓名

所屬班級(jí)號(hào)

1

小李

1

2

小魚(yú)

2

3

小皮

3

上述學(xué)生表格中,每一行代表一個(gè)學(xué)生的信息,每一列代表學(xué)生的一個(gè)屬性。


我們可以使用結(jié)構(gòu)化查詢(xún)語(yǔ)言 SQL 來(lái)對(duì)關(guān)系型數(shù)據(jù)庫(kù)表的數(shù)據(jù)進(jìn)行靈活地查詢(xún)、選擇、過(guò)濾等。


而關(guān)系型數(shù)據(jù)庫(kù)最大的特點(diǎn),就是表和表之間可以 存在關(guān)系。比如學(xué)生管理系統(tǒng)中還可以有班級(jí)表,結(jié)構(gòu)如下:

班號(hào)

班級(jí)名稱(chēng)

1

快樂(lè)班

2

泰酷班

3

躺平班

如果我想知道某個(gè)學(xué)生所屬的班級(jí)信息,只需要在查詢(xún)時(shí)將學(xué)生表的 所屬班級(jí)號(hào) 和班級(jí)表的 班號(hào) 進(jìn)行關(guān)聯(lián),而不用把所有表格的列存儲(chǔ)在一起,非常靈活。


通過(guò) SQL 可以連接查詢(xún)多張表:


得到下面的查詢(xún)結(jié)果:

學(xué)號(hào)

學(xué)生姓名

所屬班級(jí)號(hào)

班級(jí)名稱(chēng)

1

小李

1

快樂(lè)班

2

小魚(yú)

2

泰酷班

3

小皮

3

躺平班

此外,關(guān)系型數(shù)據(jù)庫(kù)遵循 ACID 原則(原子性、一致性、隔離性和持久性),通過(guò) 事務(wù) 機(jī)制可以保證多個(gè)操作同時(shí)進(jìn)行時(shí),數(shù)據(jù)的狀態(tài)保持一致。


舉個(gè)例子,A 給 B 轉(zhuǎn)賬,A 扣錢(qián)的同時(shí) B 也會(huì)加錢(qián),不會(huì)出現(xiàn) A 扣了錢(qián) B 卻沒(méi)收到錢(qián)的情況。


正因?yàn)殛P(guān)系型數(shù)據(jù)庫(kù)既能靈活查詢(xún)、又能準(zhǔn)確寫(xiě)入,所以它幾乎可以被應(yīng)用在任何項(xiàng)目中。比如各類(lèi)管理系統(tǒng)、數(shù)據(jù)分析系統(tǒng)、金融銀行系統(tǒng)等。

比較主流的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品有:

  • MySQL:開(kāi)源易學(xué),后端開(kāi)發(fā)必學(xué)的數(shù)據(jù)庫(kù)

  • Oracle:人稱(chēng) “甲方的數(shù)據(jù)庫(kù)”,主要是大型企業(yè)和政府機(jī)構(gòu)在用,功能強(qiáng)大但授權(quán)費(fèi)用昂貴

  • PostgreSQL:開(kāi)源界的天花板,功能最全面

  • SQL Server:微軟出品,和 Windows 系統(tǒng)、.NET 生態(tài)集成度高

  • SQLite:整個(gè)數(shù)據(jù)庫(kù)就是一個(gè)文件,不需要服務(wù)器,非常輕量。被廣泛應(yīng)用在手機(jī) APP、瀏覽器中,你的手機(jī)里可能有幾十個(gè) SQLite。

對(duì)于大多數(shù)項(xiàng)目,用 MySQL 等關(guān)系型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù)就足夠了。但如果要存儲(chǔ)的數(shù)據(jù)間沒(méi)有復(fù)雜關(guān)系、或者需要極致的性能時(shí),它并不是最佳選擇。

你點(diǎn)點(diǎn)頭:俺知道,就好比俺要寫(xiě)一篇文章,沒(méi)必要非得把內(nèi)容塞進(jìn) Excel 表格里,直接放到 Word 文檔里會(huì)更方便編輯和閱讀。


魚(yú)皮:沒(méi)錯(cuò),這時(shí)就需要與關(guān)系型數(shù)據(jù)庫(kù)互補(bǔ)的 非關(guān)系型數(shù)據(jù)庫(kù)

非關(guān)系型數(shù)據(jù)庫(kù)

非關(guān)系型數(shù)據(jù)庫(kù)又叫 NoSQL(Not Only SQL),適合存儲(chǔ)關(guān)系不強(qiáng)的、結(jié)構(gòu)靈活的、需要快速訪問(wèn)的數(shù)據(jù)。

打個(gè)比方,關(guān)系型數(shù)據(jù)庫(kù)像圖書(shū)館,書(shū)籍分類(lèi)明確、擺放有序、借閱有規(guī)矩;非關(guān)系型數(shù)據(jù)庫(kù)像你的書(shū)桌,怎么順手怎么放,拿取方便最重要。


在實(shí)際項(xiàng)目開(kāi)發(fā)中,最常用的非關(guān)系型數(shù)據(jù)庫(kù)是 KV 數(shù)據(jù)庫(kù)和文檔數(shù)據(jù)庫(kù)。

KV 鍵值數(shù)據(jù)庫(kù)

KV 即 Key-Value,數(shù)據(jù)是以 鍵值對(duì) 的方式存儲(chǔ)在數(shù)據(jù)庫(kù)中的,可以理解為一個(gè)超大的 HashMap,數(shù)據(jù)庫(kù)中存儲(chǔ)的每個(gè)鍵都 唯一對(duì)應(yīng) 一個(gè)值。


比如存儲(chǔ)用戶(hù)信息和熱門(mén)商品信息,結(jié)構(gòu)是這樣的:

Key 鍵

Value 值

user:1001

{"name":"魚(yú)皮", "age":25}

product:hot

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

鍵和值都可以是任意類(lèi)型的數(shù)據(jù),包括字符串、數(shù)字、數(shù)組、JSON 對(duì)象等,非常靈活。


由于 KV 存儲(chǔ)的結(jié)構(gòu)簡(jiǎn)單清晰,我們能夠很輕松地根據(jù)某個(gè)鍵查找出對(duì)應(yīng)的值,就像查字典一樣,讀寫(xiě)數(shù)據(jù)的性能都非常高。


此外,KV 數(shù)據(jù)庫(kù)的可擴(kuò)展性很強(qiáng)。因?yàn)閿?shù)據(jù)間不存在直接關(guān)聯(lián),我們可以把鍵值對(duì)分散到多臺(tái)機(jī)器上存儲(chǔ),通過(guò)數(shù)據(jù)分片、負(fù)載均衡等策略來(lái)支持海量數(shù)據(jù)的高并發(fā)訪問(wèn)。


由于高性能和高可擴(kuò)展性,KV 數(shù)據(jù)庫(kù)被廣泛應(yīng)用于緩存、分布式會(huì)話(huà)、分布式鎖、實(shí)時(shí)統(tǒng)計(jì)等場(chǎng)景。

最經(jīng)典的 KV 數(shù)據(jù)庫(kù)肯定是 Redis,它是開(kāi)源的、基于內(nèi)存的數(shù)據(jù)庫(kù),不僅支持豐富的數(shù)據(jù)類(lèi)型和功能,還有持久化等重要特性,也是后端必學(xué)的技術(shù)。其他的常用 KV 數(shù)據(jù)庫(kù)有 Memcached、Etcd、LevelDB、RocksDB 等。


文檔數(shù)據(jù)庫(kù)

文檔數(shù)據(jù)庫(kù)也屬于非關(guān)系型數(shù)據(jù)庫(kù)。顧名思義,它適用于存儲(chǔ)和管理 半結(jié)構(gòu)化的 文檔數(shù)據(jù),數(shù)據(jù)一般以 JSON(BSON)格式存儲(chǔ)。


相比于關(guān)系型數(shù)據(jù)庫(kù)中嚴(yán)格定義的表格行列,文檔數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)更像是一份份獨(dú)立的文檔,每個(gè)文檔都可以包含不同類(lèi)型和格式的數(shù)據(jù),結(jié)構(gòu)非常靈活。


比如存儲(chǔ)博客文章,結(jié)構(gòu)是這樣的:

文檔 ID

文檔數(shù)據(jù)

1

{"_id": 1, "title": "文章標(biāo)題1", "content": "這是文章1的內(nèi)容"}

2

{"_id": 2, "title": "文章標(biāo)題2", "author": "程序員魚(yú)皮"}

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


魚(yú)皮:沒(méi)錯(cuò),這就是文檔數(shù)據(jù)庫(kù)的靈活性。當(dāng)我們要給某個(gè)文檔新增一個(gè)字段時(shí),不需要像關(guān)系型數(shù)據(jù)庫(kù)那樣先改表結(jié)構(gòu),直接加就完事了。


而且支持水平擴(kuò)展,可以分散到多臺(tái)服務(wù)器上存儲(chǔ),適用于內(nèi)容管理系統(tǒng)、博客平臺(tái)、電商商品詳情頁(yè)等場(chǎng)景。


推薦學(xué)習(xí)的文檔數(shù)據(jù)庫(kù)是 MongoDB,因?yàn)樗鎯?chǔ)的就是 JSON(BSON)格式數(shù)據(jù),對(duì)前端同學(xué)很友好,入門(mén)難度也很低。


特定場(chǎng)景的數(shù)據(jù)庫(kù)

雖然關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)能夠滿(mǎn)足大部分場(chǎng)景,但在一些特殊場(chǎng)景下,使用專(zhuān)門(mén)設(shè)計(jì)的數(shù)據(jù)庫(kù)會(huì)更高效。就像你可以用菜刀砍樹(shù),但用斧子會(huì)更快更省力。

搜索引擎數(shù)據(jù)庫(kù)

專(zhuān)門(mén)為搜索功能設(shè)計(jì)的數(shù)據(jù)庫(kù)。它能存儲(chǔ)和管理大量文本數(shù)據(jù),提供快速、準(zhǔn)確、靈活的全文檢索功能。


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

魚(yú)皮:秘密在于它使用了 倒排索引 的方式存儲(chǔ)數(shù)據(jù)。

以存儲(chǔ)博客文檔為例,關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)是:

文檔 id

文檔內(nèi)容

1

感謝關(guān)注魚(yú)皮

2

魚(yú)皮是一名程序員

3

感謝關(guān)注編程導(dǎo)航

我們能夠根據(jù) id 來(lái)查找到對(duì)應(yīng)的單篇文檔,也可以通過(guò)搜索精確的關(guān)鍵詞,來(lái)查找到多篇文檔。

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


但是,如果你搜索 "魚(yú)皮程序員",是無(wú)法得到搜索結(jié)果的,因?yàn)闆](méi)有任何一個(gè)文檔的內(nèi)容完全包含 "魚(yú)皮程序員" 這個(gè)詞。


而在搜索引擎數(shù)據(jù)庫(kù)中,首先會(huì)將文檔內(nèi)容按照單詞進(jìn)行分割,也就是 分詞。然后 建立倒排索引,也就是構(gòu)建 單詞到文檔 id 的映射。


有了上述的倒排索引,當(dāng)用戶(hù)搜索 "魚(yú)皮程序員" 時(shí),搜索引擎數(shù)據(jù)庫(kù)會(huì)先對(duì)搜索詞進(jìn)行分詞,得到 "魚(yú)皮" 和 "程序員",然后根據(jù)這兩個(gè)詞匯就能找到文檔 id 1 和 2 了。不用再一行一行遍歷表內(nèi)所有的數(shù)據(jù),實(shí)現(xiàn)了更靈活、快速的搜索。


此外,搜索引擎數(shù)據(jù)庫(kù)還支持 相關(guān)性排序,能夠根據(jù)用戶(hù)的搜索詞對(duì)所有搜索結(jié)果進(jìn)行打分,把最相關(guān)的文檔排到最上面,就像谷哥度娘那樣。


主流的搜索引擎數(shù)據(jù)庫(kù)技術(shù)有 Elasticsearch、Apache Solr 等,建議只學(xué)習(xí) Elasticsearch 就夠了,它的社區(qū)最活躍、學(xué)習(xí)資料最豐富。

向量數(shù)據(jù)庫(kù)

向量數(shù)據(jù)庫(kù)是專(zhuān)門(mén)用于存儲(chǔ)和處理 高維向量數(shù)據(jù) 的數(shù)據(jù)庫(kù),也是 AI 時(shí)代最火的數(shù)據(jù)庫(kù)。

你好奇道:啥是向量?

魚(yú)皮:簡(jiǎn)單來(lái)說(shuō),向量是一個(gè)數(shù)字?jǐn)?shù)組,每個(gè)數(shù)字代表一個(gè) 特征 維度。


舉個(gè)例子,在人臉識(shí)別系統(tǒng)中,我們需要通過(guò)人臉的特征來(lái)判斷是否為同一個(gè)人。每張人臉圖像都可以通過(guò) AI 模型轉(zhuǎn)換成一個(gè)向量,這個(gè)向量可能包含成百上千個(gè)數(shù)字,每個(gè)數(shù)字代表圖像的一個(gè) 抽象 特征維度。


實(shí)際上,很難說(shuō)清楚每個(gè)數(shù)字代表什么,但便于理解,你可以 想象 下標(biāo) 0 代表鼻子大小,下標(biāo) 1 代表眼睛距離等等,以此類(lèi)推。


之后通過(guò)余弦相似度等算法來(lái)計(jì)算兩個(gè)向量的相似度,就能判斷出兩張人臉是不是同一個(gè)人。


向量數(shù)據(jù)庫(kù)能夠高效存儲(chǔ)這些多維向量數(shù)據(jù)、快速計(jì)算向量的相似度、并實(shí)現(xiàn)各種不同算法的相似性搜索。適用于人臉識(shí)別、推薦系統(tǒng)、語(yǔ)義搜索等場(chǎng)景。


在 AI 時(shí)代,可以用向量數(shù)據(jù)庫(kù)給 AI 提供特定領(lǐng)域的知識(shí)庫(kù),大大提升回答的準(zhǔn)確性。


主流的向量數(shù)據(jù)庫(kù)技術(shù)有 Milvus、Pinecone 等,像 PostgreSQL 關(guān)系型數(shù)據(jù)庫(kù)也通過(guò)插件支持存儲(chǔ)向量類(lèi)型的數(shù)據(jù)。


圖數(shù)據(jù)庫(kù)

圖數(shù)據(jù)庫(kù)是專(zhuān)門(mén)用于存儲(chǔ)和處理 圖結(jié)構(gòu)數(shù)據(jù) 的數(shù)據(jù)庫(kù)。

注意,這里的 “圖” 可不是照片或圖表,而是數(shù)學(xué)中的圖論概念,由節(jié)點(diǎn)(Node)和邊(Edge)構(gòu)成的圖形結(jié)構(gòu)。


比如我們要存儲(chǔ)一個(gè)社交網(wǎng)絡(luò)的朋友關(guān)系,對(duì)應(yīng)的圖可能是由多個(gè)用戶(hù)節(jié)點(diǎn)和好友關(guān)系邊組成的。


在圖數(shù)據(jù)庫(kù)中,需要 2 個(gè)表格來(lái)存儲(chǔ)。

1)節(jié)點(diǎn)信息表:

節(jié)點(diǎn) id

節(jié)點(diǎn)名

1

魚(yú)皮

2

阿巴

3

編程導(dǎo)航

2)邊信息表:

邊 id

邊類(lèi)型

起始節(jié)點(diǎn)

結(jié)束節(jié)點(diǎn)

1

好友

1

2

2

好友

2

3

通過(guò)存儲(chǔ)這些節(jié)點(diǎn)和邊的信息,圖數(shù)據(jù)庫(kù)就能快速查詢(xún)和分析復(fù)雜的關(guān)系網(wǎng)絡(luò)。比如查找 “朋友的朋友”、計(jì)算兩個(gè)用戶(hù)之間的最短路徑、發(fā)現(xiàn)社交圈子等等。


因此,圖數(shù)據(jù)庫(kù)非常適合構(gòu)建社交網(wǎng)絡(luò)、推薦系統(tǒng)、知識(shí)圖譜等。

比較主流的圖數(shù)據(jù)庫(kù)有 Neo4j、TigerGraph 等,都支持復(fù)雜的圖算法和分布式擴(kuò)展,能夠通過(guò)并行計(jì)算加速圖形處理。

時(shí)序數(shù)據(jù)庫(kù)

時(shí)序數(shù)據(jù)庫(kù)是專(zhuān)門(mén)用于高效存儲(chǔ)和處理 時(shí)間序列 的數(shù)據(jù)庫(kù)。

時(shí)間序列是指以時(shí)間作為主要維度的數(shù)據(jù)序列,也就是每個(gè)數(shù)據(jù)單元都帶著 時(shí)間戳,按時(shí)間順序排列。


舉個(gè)例子,在服務(wù)器監(jiān)控系統(tǒng)中,我們需要每分鐘記錄服務(wù)器的 CPU 使用率、內(nèi)存使用率等指標(biāo),數(shù)據(jù)結(jié)構(gòu)如下:

時(shí)間戳

設(shè)備ID

CPU使用率

內(nèi)存使用率

2026-01-08 10:00

Server001

45%

60%

2026-01-08 10:01

Server001

48%

62%

2026-01-08 10:02

Server001

52%

65%

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


因此,時(shí)序數(shù)據(jù)庫(kù)非常適用于物聯(lián)網(wǎng)設(shè)備監(jiān)控、服務(wù)器性能監(jiān)控、金融交易數(shù)據(jù)分析等場(chǎng)景。

主流的時(shí)序數(shù)據(jù)庫(kù)技術(shù)有 InfluxDB、TimescaleDB 等,一般會(huì)配合 Grafana 監(jiān)控看板一起使用,實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ) + 快速可視化。你在運(yùn)維團(tuán)隊(duì)看到的那些酷炫的實(shí)時(shí)監(jiān)控大屏,背后就是時(shí)序數(shù)據(jù)庫(kù)在支撐。


列存數(shù)據(jù)庫(kù)

區(qū)別于傳統(tǒng)的行式數(shù)據(jù)庫(kù),列存數(shù)據(jù)庫(kù) 以列作為基本的存儲(chǔ)單位,把每一列的數(shù)據(jù)存儲(chǔ)在一起。

拿公司每天的收入來(lái)舉個(gè)例子,傳統(tǒng)的行式數(shù)據(jù)庫(kù)是這么存儲(chǔ)的:

日期

銷(xiāo)售額

成本

利潤(rùn)

2026-01-01

500

600

-100

2026-01-02

280

450

-170

2026-01-03

290

480

-190

而在列存數(shù)據(jù)庫(kù)中,底層大概是這么存儲(chǔ)的,看起來(lái)像是對(duì)矩陣做了一次轉(zhuǎn)置:

日期

2026-01-01

2026-01-02

2026-01-03

銷(xiāo)售額

500

280

290

成本

600

450

480

利潤(rùn)

-100

-170

-190


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


而且從計(jì)算機(jī)底層來(lái)分析,把相同類(lèi)型的數(shù)據(jù)在同一列中連續(xù)存儲(chǔ),可以實(shí)現(xiàn)更好的數(shù)據(jù)壓縮效果、節(jié)約存儲(chǔ)空間。


因此,列存數(shù)據(jù)庫(kù)適用于報(bào)表生成、數(shù)據(jù)倉(cāng)庫(kù)、商業(yè)智能分析等場(chǎng)景。

主流的列存數(shù)據(jù)庫(kù)技術(shù)有 ClickHouse、Apache HBase、Druid 等,都是大數(shù)據(jù)開(kāi)發(fā)的必修課。

融合型數(shù)據(jù)庫(kù)

前面我們講了關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù),要么強(qiáng)調(diào)靈活查詢(xún)、要么強(qiáng)調(diào)性能和擴(kuò)展,各有側(cè)重。

但有些數(shù)據(jù)庫(kù)偏偏 “既要又要”,要把兩者的優(yōu)點(diǎn)融合到一起,這就是接下來(lái)要講的融合型數(shù)據(jù)庫(kù)。

NewSQL 數(shù)據(jù)庫(kù)

NewSQL 是一類(lèi)新興的數(shù)據(jù)庫(kù),它融合了傳統(tǒng)關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)。既有傳統(tǒng) SQL 數(shù)據(jù)庫(kù)的 ACID 特性和事務(wù)支持,又有 NoSQL 的水平擴(kuò)展能力和高性能。支持標(biāo)準(zhǔn) SQL 查詢(xún)、分布式架構(gòu)、自動(dòng)容錯(cuò)和故障恢復(fù),可以替代傳統(tǒng)的分庫(kù)分表方案,特別適用于大廠的高并發(fā)系統(tǒng)。


主流的 NewSQL 數(shù)據(jù)庫(kù)有 TiDB、CockroachDB、Google Spanner 等。其中 TiDB 是國(guó)產(chǎn)之光,支持 HTAP(混合事務(wù)分析處理),而且完全兼容 MySQL 協(xié)議,遷移成本低;CockroachDB 人稱(chēng) “蟑螂數(shù)據(jù)庫(kù)”,因?yàn)樗耋胍粯宇B強(qiáng),集群中一個(gè)節(jié)點(diǎn)掛了,其他節(jié)點(diǎn)依然能正常服務(wù),打不死。


多模數(shù)據(jù)庫(kù)

區(qū)別于前面所有存儲(chǔ)單一數(shù)據(jù)模型的數(shù)據(jù)庫(kù),多模數(shù)據(jù)庫(kù)能夠直接在一個(gè)數(shù)據(jù)庫(kù)里同時(shí)存儲(chǔ)和處理 多種不同類(lèi)型 的數(shù)據(jù)。比如關(guān)系型數(shù)據(jù)、文檔數(shù)據(jù)、圖形數(shù)據(jù)、鍵值對(duì)數(shù)據(jù)等等,非常靈活、省去了維護(hù)多個(gè)數(shù)據(jù)庫(kù)的麻煩。


而且多模數(shù)據(jù)庫(kù)還支持跨模型事務(wù),能夠更輕松地實(shí)現(xiàn)數(shù)據(jù)的一致性和完整性,不需要手動(dòng)實(shí)現(xiàn)跨庫(kù)事務(wù)、跨庫(kù)數(shù)據(jù)同步這些復(fù)雜操作。


雖然聽(tīng)起來(lái)很厲害,但實(shí)際開(kāi)發(fā)中很少用,因?yàn)闃訕油訕铀桑嗄?shù)據(jù)庫(kù)的性能往往不如專(zhuān)注單一場(chǎng)景的數(shù)據(jù)庫(kù)。

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


怎么選擇數(shù)據(jù)庫(kù)?

你一臉懵逼:阿巴阿巴,你講了這么多數(shù)據(jù)庫(kù),俺頭都大了,到底該選哪個(gè)?


魚(yú)皮笑了笑:別慌,數(shù)據(jù)庫(kù)選型其實(shí)沒(méi)那么復(fù)雜。

優(yōu)先選用 MySQL / PostgreSQL + Redis,能覆蓋 90% 的項(xiàng)目需求。

有特定功能或優(yōu)化需求時(shí),再選擇專(zhuān)業(yè)數(shù)據(jù)庫(kù)。比如需要搜索功能了,再加 Elasticsearch;要做 AI 知識(shí)庫(kù)了,再加向量數(shù)據(jù)庫(kù)。

畢竟每多一個(gè)數(shù)據(jù)庫(kù),就多一份運(yùn)維工作和故障風(fēng)險(xiǎn)。


你:學(xué)會(huì)了學(xué)廢了!對(duì)了魚(yú)皮,我還聽(tīng)說(shuō)過(guò)數(shù)據(jù)湖、數(shù)據(jù)倉(cāng)庫(kù),這些是啥???

魚(yú)皮:簡(jiǎn)單來(lái)說(shuō),數(shù)據(jù)倉(cāng)庫(kù)是用來(lái)存儲(chǔ)和分析大量結(jié)構(gòu)化數(shù)據(jù)的;數(shù)據(jù)湖更像個(gè)大水池,什么數(shù)據(jù)都能往里扔,包括日志、圖片、視頻這些非結(jié)構(gòu)化數(shù)據(jù)。它們更多是大數(shù)據(jù)架構(gòu)層面的概念。


感興趣的話(huà),點(diǎn)個(gè)關(guān)注,后面專(zhuān)門(mén)出一期講講~


點(diǎn)擊下方關(guān)注魚(yú)皮,獲取免費(fèi)編程學(xué)習(xí)路線(xiàn)、簡(jiǎn)歷模板、面試題解、AI 知識(shí)庫(kù)、項(xiàng)目教程、交流群。

一些對(duì)大家有用的資源:
100+ 編程學(xué)習(xí)路線(xiàn) / 實(shí)戰(zhàn)項(xiàng)目 / 求職指導(dǎo)
100+ 簡(jiǎn)歷模板
300+ 企業(yè)面試題庫(kù) mianshiya.com
500+ AI 資源大全
1 對(duì) 1 模擬面試
動(dòng)畫(huà)學(xué)算法教程

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

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.

相關(guān)推薦
熱點(diǎn)推薦
《海賊王》第二季口碑爆棚:爛番茄新鮮度100%開(kāi)分

《海賊王》第二季口碑爆棚:爛番茄新鮮度100%開(kāi)分

3DM游戲
2026-03-11 13:22:07
小楊阿姨松口了,若真回不去臺(tái)北,聽(tīng)老板安排,反正她不喜歡做飯

小楊阿姨松口了,若真回不去臺(tái)北,聽(tīng)老板安排,反正她不喜歡做飯

小娛樂(lè)悠悠
2026-03-13 12:51:19
伊朗警察總長(zhǎng)威脅:抗議者敢上街就開(kāi)槍

伊朗警察總長(zhǎng)威脅:抗議者敢上街就開(kāi)槍

桂系007
2026-03-11 16:18:41
生死時(shí)速72小時(shí),營(yíng)救伊朗女球員

生死時(shí)速72小時(shí),營(yíng)救伊朗女球員

家傳編輯部
2026-03-12 11:07:56
CBA最新戰(zhàn)報(bào):遼寧主場(chǎng)力克殘陣山西,北控主場(chǎng)勝天津!

CBA最新戰(zhàn)報(bào):遼寧主場(chǎng)力克殘陣山西,北控主場(chǎng)勝天津!

風(fēng)風(fēng)拒絕焦慮
2026-03-14 03:14:57
中國(guó)工商銀行浙江省分行原黨委書(shū)記、行長(zhǎng)沈榮勤被開(kāi)除黨籍

中國(guó)工商銀行浙江省分行原黨委書(shū)記、行長(zhǎng)沈榮勤被開(kāi)除黨籍

環(huán)球網(wǎng)資訊
2026-03-13 17:06:13
見(jiàn)美國(guó)突然松綁,澤連斯基急赴歐洲,要拿自家絕活談筆大買(mǎi)賣(mài)

見(jiàn)美國(guó)突然松綁,澤連斯基急赴歐洲,要拿自家絕活談筆大買(mǎi)賣(mài)

我是盲流
2026-03-14 01:30:27
男子網(wǎng)購(gòu)了一臺(tái)80寸的“小米電視”,安裝寬帶的師傅提醒他買(mǎi)的電視是假的!

男子網(wǎng)購(gòu)了一臺(tái)80寸的“小米電視”,安裝寬帶的師傅提醒他買(mǎi)的電視是假的!

張曉磊
2025-09-29 11:32:28
女子用洗衣機(jī)洗完的衣服總有尿味,查監(jiān)控發(fā)現(xiàn)弟媳拿壺上廁所后把排泄物倒進(jìn)洗衣機(jī),女子:我們還未分家,去年就倒過(guò)好幾回,弟媳稱(chēng)“對(duì)我們不滿(mǎn)意”

女子用洗衣機(jī)洗完的衣服總有尿味,查監(jiān)控發(fā)現(xiàn)弟媳拿壺上廁所后把排泄物倒進(jìn)洗衣機(jī),女子:我們還未分家,去年就倒過(guò)好幾回,弟媳稱(chēng)“對(duì)我們不滿(mǎn)意”

觀威海
2026-03-13 10:39:15
過(guò)氣男頂流淪為酒局“工具人”!全程討好、倒酒賠笑,像一個(gè)商品

過(guò)氣男頂流淪為酒局“工具人”!全程討好、倒酒賠笑,像一個(gè)商品

涵豆說(shuō)娛
2026-01-19 18:16:27
打了十來(lái)天,“最高強(qiáng)度”打擊來(lái)了

打了十來(lái)天,“最高強(qiáng)度”打擊來(lái)了

中國(guó)新聞周刊
2026-03-11 15:02:08
2026年美加墨世界杯阿根廷最強(qiáng)陣容預(yù)測(cè)!奪冠幾乎不可能了?

2026年美加墨世界杯阿根廷最強(qiáng)陣容預(yù)測(cè)!奪冠幾乎不可能了?

體壇八點(diǎn)半的那些事兒
2026-03-13 18:50:31
西安不倒翁小姐姐離職:沒(méi)嫁入豪門(mén),七年沒(méi)拿到編制,壓力太大!

西安不倒翁小姐姐離職:沒(méi)嫁入豪門(mén),七年沒(méi)拿到編制,壓力太大!

眼光很亮
2026-03-12 19:25:00
沈陽(yáng)91歲老太太病逝,臨終遺言:我就是國(guó)民黨一直在找的軍火大盜

沈陽(yáng)91歲老太太病逝,臨終遺言:我就是國(guó)民黨一直在找的軍火大盜

興趣知識(shí)
2026-03-12 17:18:51
俄媒:伊朗向俄羅斯請(qǐng)求人道主義援助

俄媒:伊朗向俄羅斯請(qǐng)求人道主義援助

參考消息
2026-03-13 14:17:21
15.65萬(wàn)起!豐田官宣:4月6日,新車(chē)正式開(kāi)售

15.65萬(wàn)起!豐田官宣:4月6日,新車(chē)正式開(kāi)售

高科技愛(ài)好者
2026-03-13 23:01:07
伊朗終于提出一個(gè)停戰(zhàn)條件:就一句話(huà)

伊朗終于提出一個(gè)停戰(zhàn)條件:就一句話(huà)

新動(dòng)察
2026-03-12 15:41:46
漠河觀測(cè)員趙海儒:42萬(wàn)津貼買(mǎi)招行,持有13年,狂賺近190萬(wàn)

漠河觀測(cè)員趙海儒:42萬(wàn)津貼買(mǎi)招行,持有13年,狂賺近190萬(wàn)

真實(shí)人物采訪
2026-03-13 06:15:06
石破茂回應(yīng)中日現(xiàn)狀,不是打得過(guò)打不過(guò)的問(wèn)題,而是能不能活下去

石破茂回應(yīng)中日現(xiàn)狀,不是打得過(guò)打不過(guò)的問(wèn)題,而是能不能活下去

笑談歷史阿晡
2026-01-14 11:26:05
淪為共享單車(chē)的女色虎

淪為共享單車(chē)的女色虎

深度報(bào)
2026-03-05 22:39:27
2026-03-14 04:11:00
程序員魚(yú)皮 incentive-icons
程序員魚(yú)皮
一手科技資訊和編程干貨
62文章數(shù) 64關(guān)注度
往期回顧 全部

科技要聞

龍蝦熱卷到AI硬件 “無(wú)腦”硬件或被淘汰

頭條要聞

穆杰塔巴"亮相"沒(méi)講話(huà) 伊朗學(xué)者:其處境可能非常危險(xiǎn)

頭條要聞

穆杰塔巴"亮相"沒(méi)講話(huà) 伊朗學(xué)者:其處境可能非常危險(xiǎn)

體育要聞

叕戰(zhàn)奧運(yùn),張雨霏要做回“小將”

娛樂(lè)要聞

廣電總局公布演員將用姓氏筆畫(huà)定番位

財(cái)經(jīng)要聞

“十五五”規(guī)劃綱要,全文來(lái)了!

汽車(chē)要聞

置換補(bǔ)貼價(jià)8.68萬(wàn) 五菱繽果S 525km旗艦款上市

態(tài)度原創(chuàng)

本地
家居
教育
健康
軍事航空

本地新聞

坐標(biāo)北京,過(guò)敏季反向遷徒

家居要聞

藝術(shù)之家 法式優(yōu)雅

教育要聞

25年堅(jiān)守,6次進(jìn)化!這所學(xué)校如何通過(guò)閱讀拿下省科研特等獎(jiǎng)第一名?

轉(zhuǎn)頭就暈的耳石癥,能開(kāi)車(chē)上班嗎?

軍事要聞

伊朗稱(chēng)襲擊"林肯"號(hào)航母致其撤走

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版