1 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
一個(gè)
embedded database
駐留應(yīng)用程序內(nèi)。它不需要是相關(guān)的。例如,您計(jì)算機(jī)上的媒體管理器中嵌入了一個(gè)數(shù)據(jù)庫(kù),用于存儲(chǔ)音頻/視頻元數(shù)據(jù)和文件位置。這個(gè)數(shù)據(jù)庫(kù)可以是關(guān)系型的,在這種情況下,數(shù)據(jù)庫(kù)可以是類(lèi)似 sqlite 或 mysql 的東西。(我認(rèn)為 postgres 不能嵌入到應(yīng)用程序中)。如果您想緩存本地信息,或者您確定應(yīng)用程序內(nèi)的信息不需要與應(yīng)用程序的功能進(jìn)行外部通信,則嵌入式數(shù)據(jù)庫(kù)非常有用。嵌入式數(shù)據(jù)庫(kù)的核心設(shè)計(jì)目標(biāo)是占用空間小,因此在許多情況下,嵌入式數(shù)據(jù)庫(kù)會(huì)忽略專(zhuān)用數(shù)據(jù)庫(kù)中的功能。
專(zhuān)用數(shù)據(jù)庫(kù)服務(wù)器支持一個(gè)或多個(gè)客戶端的讀寫(xiě)操作,并且通常提供比嵌入式版本更多的功能。Postgres 和 Mysql 都是專(zhuān)用數(shù)據(jù)庫(kù),在網(wǎng)絡(luò)應(yīng)用中被廣泛使用。它們也是關(guān)系數(shù)據(jù)庫(kù),而不是 Bolt 似乎是的鍵值存儲(chǔ)。
鍵值存儲(chǔ)是一個(gè)非關(guān)系數(shù)據(jù)庫(kù)。想想
redis
(或dicts
在 python 中),在哪里注意:
postgres
hashstore
,這是一個(gè)鍵值存儲(chǔ)。檢索:客戶端給數(shù)據(jù)庫(kù)key,數(shù)據(jù)庫(kù)響應(yīng)value。
分配:客戶端向數(shù)據(jù)庫(kù)提供一個(gè)鍵和值,數(shù)據(jù)庫(kù)為給定值分配一個(gè)新鍵,或更新現(xiàn)有鍵的值。
就像關(guān)系數(shù)據(jù)庫(kù)一樣,鍵值數(shù)據(jù)庫(kù)可以嵌入或單獨(dú)駐留在專(zhuān)用硬件上。以下是在做出這些架構(gòu)決策時(shí)必須提出的一些示例問(wèn)題。
我的應(yīng)用程序是否依賴于需要通信的數(shù)據(jù),我是想通過(guò)寫(xiě)入中央數(shù)據(jù)庫(kù)來(lái)通信數(shù)據(jù),還是每個(gè)聊天客戶端都以對(duì)等模型連接到另一個(gè)客戶端并存儲(chǔ)自己的數(shù)據(jù)?
我的應(yīng)用程序中是否需要關(guān)系模型、鍵值存儲(chǔ)或其他一些奇特的數(shù)據(jù)模型?
只是我個(gè)人的看法,關(guān)系模型在過(guò)去 30 多年里成功地滿足了各種各樣的持久需求。具有非常成熟的嵌入式或?qū)S貌渴鸾鉀Q方案。這是一個(gè)很好的起點(diǎn)。
- 1 回答
- 0 關(guān)注
- 220 瀏覽
添加回答
舉報(bào)