{eval=Array;=+count(Array);}
我們知道,技術(shù)是會一直發(fā)展的,而我們常說的關(guān)系型數(shù)據(jù)庫、NoSQL其實都是技術(shù)發(fā)展的產(chǎn)物,都是為了讓我們更好的解決問題而生的。
在當(dāng)下的項目開發(fā)時,我們的技術(shù)選型也不像以前那樣單一,對于存在數(shù)據(jù)落地場景的,那像MySQL/Oracle/SQL Server這類的數(shù)據(jù)庫則是必須的。而我們發(fā)現(xiàn),NoSQL使用與否都不會影響項目功能,有些項目會使用,有些則沒有使用。
所以有不少朋友會有這方面的質(zhì)疑,關(guān)系型數(shù)據(jù)庫和NoSQL是多帶帶使用還是搭配使用?或者什么場景下要使用關(guān)系型數(shù)據(jù)庫,什么時候又該使用NoSQL呢?在這里結(jié)合我的實際經(jīng)驗談下我的看法以供大家參考:
1、數(shù)據(jù)庫是數(shù)據(jù)落地的基礎(chǔ),是必須的
但凡我們的項目中存在數(shù)據(jù),而且這些數(shù)據(jù)需要保存,不管數(shù)據(jù)量的大小,數(shù)據(jù)庫都是必須要使用的。
試想一下,如果沒有數(shù)據(jù)庫軟件,我們的數(shù)據(jù)如何有效存取?
2、NoSQL推薦使用
在這里說下,NoSQL不能單從字面上理解為“沒有SQL、不是SQL、不需要SQL”,NoSQL的含義是Not Only SQL,不僅僅是SQL。
NoSQL是一類非關(guān)系型數(shù)據(jù)庫的統(tǒng)稱,最常用的就是:Redis、Memcached了。像我們最常使用的Redis是一款內(nèi)存型K/V數(shù)據(jù)庫,它具備以下優(yōu)點:
內(nèi)存型數(shù)據(jù)庫存入、讀取數(shù)據(jù)都比從硬盤中讀取要快,性能很高。同時它支持?jǐn)?shù)據(jù)持久化,可以將內(nèi)存中的數(shù)據(jù)落地到硬盤中;
Redis的數(shù)據(jù)類型豐富,不光光當(dāng)成“緩存”來使用,還可以當(dāng)成隊列來使用;
站在架構(gòu)角度去說,我們建議項目采用NoSQL+關(guān)系型數(shù)據(jù)庫這種形式來部署。數(shù)據(jù)庫相對于NoSQL來說還是偏重了,特別是在高并發(fā)項目中,數(shù)據(jù)庫的I/O開銷和查詢效率都是很大的。當(dāng)NoSQL推出時,我們一般將熱點數(shù)據(jù)也存入NoSQL,下次查詢時直接從NoSQL中查詢這樣就減少了數(shù)據(jù)庫的壓力,加快了系統(tǒng)的處理響應(yīng)速度。
以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗,歡迎關(guān)注我了解更多科技知識!
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答