1 回答

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