索引多,nosql一條記錄所用的空間是sql的3-5倍,有的甚至上10倍。
成都創(chuàng)新互聯(lián)公司從2013年成立,先為惠山等服務(wù)建站,惠山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為惠山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
邏輯單一,nosql只做簡(jiǎn)單的提取,sql能做復(fù)雜的關(guān)聯(lián)
因?yàn)樗俣瓤?。你上億級(jí)數(shù)據(jù)的情況下NOSQL是比普通SQL效率更高,哪怕有索引。畢竟NOSQL的存儲(chǔ)空間使用是普通SQL三倍多?;径加迷谒饕矫媪?。
如果是全文搜索關(guān)鍵字,左右模糊等就更甩SQL幾條街了
mongodb 會(huì)比mysql快的多,原因是:
首先是內(nèi)存映射機(jī)制,數(shù)據(jù)不是持久化到存儲(chǔ)設(shè)備中的,而是暫時(shí)存儲(chǔ)在內(nèi)存中,這就提高了在IO上效率以及操作系統(tǒng)對(duì)存儲(chǔ)介質(zhì)之間的性能損耗。(畢竟內(nèi)存讀取最快)
其次,NoSQL并不是不使用sql,只是不使用關(guān)系。沒有關(guān)系的存在,就表示每個(gè)數(shù)據(jù)都好比是擁有一個(gè)單獨(dú)的存儲(chǔ)空間,然后一個(gè)聚集索引來指向。搜索性能一定會(huì)提高的。
第三,語言。使用javascript語法進(jìn)行操作更加高效、直接。
這些是MongoDB針對(duì)關(guān)系型數(shù)據(jù)庫(kù)的效率要高的原因。但是不能僅僅看重效率,這種數(shù)據(jù)庫(kù)的設(shè)計(jì)帶來的弊端也是有的。例如數(shù)據(jù)關(guān)系的維護(hù)會(huì)帶來很多冗余數(shù)據(jù)、客戶端代碼需要大量針對(duì)數(shù)據(jù)庫(kù)進(jìn)行的IO操作、數(shù)據(jù)挖掘難以實(shí)現(xiàn)等等。
nosql 你可以想到就是座位號(hào)碼。
你給的是唯一碼,就能得到唯一碼對(duì)應(yīng)的相關(guān)信息。
與標(biāo)準(zhǔn)SQL不同,SQL,字段多少會(huì)左右查詢速度。
NOSQL則是以json類似的格式把全部字段用一個(gè)字符串展現(xiàn)出來。
以3億數(shù)據(jù)的表,你加上索引,查全部欄位。單個(gè)速度可能會(huì)很快。
如果多個(gè),哪怕有索引,恐怕也要幾百毫米。
而NOSQL則依次給你全部數(shù)據(jù)。你只需要程序上做出來就行。
存取速度大概小于10毫米。
不過NOSQL所占的硬盤空間,是普通SQL的好幾倍。。。。。。
因?yàn)殛P(guān)系數(shù)據(jù)庫(kù)運(yùn)行的慢
處理大數(shù)據(jù)的大多數(shù)情況是nosql比較高效
但是nosql也沒法完全取代關(guān)系數(shù)據(jù)庫(kù)
nosql不能處理復(fù)雜的邏輯
但是很多情況下只是簡(jiǎn)單的mapping,匯總,
在目前互聯(lián)網(wǎng)大數(shù)據(jù)的環(huán)境下nosql會(huì)越來越普及
一樣是數(shù)據(jù)庫(kù)
NOSQL查詢速度快,但是占用空間也大(都去索引那邊了)
但是NOSQL查詢復(fù)雜的邏輯關(guān)系的時(shí)候,只能批量獲取到本地去統(tǒng)計(jì)而SQL能通過條件和關(guān)聯(lián)表等方式進(jìn)行篩選只顯示符合條件的語句。
NOSQL用于無條件或少條件下的存取。百億級(jí)數(shù)據(jù)也能快速取出。
SQL用于復(fù)雜的邏輯存取。在數(shù)據(jù)量不多的情況下也能跟NOSQL一樣用于數(shù)據(jù)存儲(chǔ)。