什么是鍵值數(shù)據(jù)庫,在大數(shù)據(jù)分析科目中是有這樣的知識點(diǎn)的,在備考CGFT考試中是要學(xué)習(xí)大數(shù)據(jù)分析的,畢竟要成為一名金融科技分析師這是很有必要的哦!
鍵值數(shù)據(jù)庫(Key-Value Database)會使用一個(gè)哈希表,這個(gè)表中有一個(gè)特定的Key和一個(gè)指針指向特定的Value。Key可以用來定位Value,即存儲和檢索具體的Value。
Value對數(shù)據(jù)庫而言是透明不可見的,不能對Value進(jìn)行索引和查詢,只能通過Key進(jìn)行查詢。Value可以用來存儲任意類型的數(shù)據(jù),包括整型、字符型、數(shù)組、對象等。
在存在大量寫操作的情況下,鍵值數(shù)據(jù)庫可以比關(guān)系數(shù)據(jù)庫取得明顯更好的性能。因?yàn)?,關(guān)系數(shù)據(jù)庫需要建立索引來加速查詢,當(dāng)存在大量寫操作時(shí),索引會發(fā)生頻繁更新,由此會產(chǎn)生高昂的索引維護(hù)代價(jià)。關(guān)系數(shù)據(jù)庫通常很難水平擴(kuò)展,但是,鍵值數(shù)據(jù)庫天生具有良好的伸縮性,理論上幾乎可以實(shí)現(xiàn)數(shù)據(jù)量的無限擴(kuò)容。鍵值數(shù)據(jù)庫可以進(jìn)一步劃分為內(nèi)存鍵值數(shù)據(jù)庫和持久化(Persistent)鍵值數(shù)據(jù)庫。
內(nèi)存鍵值數(shù)據(jù)庫把數(shù)據(jù)保存在內(nèi)存,如Memcached和Redis;持久化鍵值數(shù)據(jù)庫把數(shù)據(jù)保存在磁盤,如BerkeleyDB、Voldmort和Riak
當(dāng)然,鍵值數(shù)據(jù)庫也有自身的局限性,條件查詢就是鍵值數(shù)據(jù)庫的弱項(xiàng)。
因此,如果只對部分值進(jìn)行查詢或更新,效率就會比較低下。在使用鍵值數(shù)據(jù)庫時(shí),應(yīng)該盡量避免多表關(guān)聯(lián)查詢,可以采用雙向穴余存儲關(guān)系來代替表關(guān)聯(lián),把操作分解成單表操作。此外,鍵值數(shù)據(jù)庫在發(fā)生故障時(shí)不支持回滾操作,因此無法支持事務(wù)。
