您好,登錄后才能下訂單哦!
作為一名應(yīng)用開(kāi)發(fā)者,數(shù)據(jù)庫(kù)應(yīng)用已經(jīng)非常廣泛了。你可能使用過(guò)關(guān)系型數(shù)據(jù),比如MySQL、PostgreSQL,也可能使用過(guò)文檔存儲(chǔ),比如MongoDB,或者key-value數(shù)據(jù)庫(kù),比如Redis。每一種數(shù)據(jù)庫(kù)都有它的長(zhǎng)處,也許你還正在考慮使用分布式數(shù)據(jù)庫(kù),比如Cassandra,來(lái)解決你手頭上的工作。
使用這些數(shù)據(jù)產(chǎn)品并不是要取代原有的數(shù)據(jù)產(chǎn)品,而是為不同的應(yīng)用場(chǎng)景提供更多的選擇。NoSQL代表著:選擇合適的方案處理合適的業(yè)務(wù)場(chǎng)景。
在“Cassandra基本介紹”這個(gè)課程,我們將討論從關(guān)系型數(shù)據(jù)庫(kù)轉(zhuǎn)變?yōu)镃assandra的主要原因,以及Cassandra基本特點(diǎn)。 在本章結(jié)束后,你應(yīng)該學(xué)些到:
RDBMS特點(diǎn)
RDBMS是否適合大數(shù)據(jù)
第三范式不可擴(kuò)展
Sharding是一個(gè)惡夢(mèng)
高可用..不是真實(shí)的
缺點(diǎn)總結(jié)
課程總結(jié)
下面我們就先介紹一下,關(guān)系型數(shù)據(jù)庫(kù):
RDBMS特點(diǎn)
RDBMS適合中型數(shù)據(jù),在單臺(tái)機(jī)器上工作良好,比如MySQL、PostgreSQL。
對(duì)于數(shù)百個(gè)并發(fā)用戶(hù)支持較好。
ACID支持良好
RDBMS是否適合大數(shù)據(jù)
對(duì)于大數(shù)據(jù),必然需要水平擴(kuò)展,MySQL的master/slave模式,將導(dǎo)致ACID(A:原子性,C:一致性,I:隔離性,D:持久性)不復(fù)存在
第三范式不可擴(kuò)展(沒(méi)有冗余)
由于查詢(xún)的復(fù)雜性,以及用戶(hù)同時(shí)需要快速響應(yīng),因?yàn)橛脩?hù)是沒(méi)有耐心的,導(dǎo)致數(shù)據(jù)必須反范式化設(shè)計(jì)。
Sharding是一個(gè)惡夢(mèng)
數(shù)據(jù)位于每一個(gè)shard
join和聚合困難
需要反范式化
查詢(xún)需要使用shard規(guī)則或路由,來(lái)命中shard
添加shard需要手動(dòng)遷移數(shù)據(jù)
高可用..不是真實(shí)的
master為單點(diǎn)故障
不支持多數(shù)據(jù)中心
缺點(diǎn)總結(jié)
水平擴(kuò)展是頭疼的一件事
ACID在本地是best,多機(jī)存在一致性問(wèn)題
重新sharding需要手動(dòng)遷移數(shù)據(jù)
往往為了性能需要反范式化
高可用復(fù)雜,需要額外操作
課程總結(jié)
既然RDBMS有以上缺點(diǎn),那我們就需要解決它們:
強(qiáng)一致性是不現(xiàn)實(shí)的:So,放棄他
重新sharding是困難的:So,我們需要自動(dòng)完成
Master failover:So,我們應(yīng)該不使用master/slave模式
數(shù)據(jù)分布式和聚合 no good:So,對(duì)于實(shí)時(shí)查詢(xún)性能,需要進(jìn)行反范式化,目的是讓查詢(xún)總是命中在1臺(tái)機(jī)器上
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。