分布式
分布式什么我不知道邪铲,但是蕩劍式和破劍式我倒是知道芬位。哈哈哈,歡迎收看最新一期的龍哥嘚吧嘚带到。
今天咱們來聊一聊數(shù)據(jù)庫昧碉。
現(xiàn)在經(jīng)常聽一些朋友,動不動就問,你會分布式嗎被饿,高并發(fā)和多線程呢四康?
這個論調(diào)就好像我突然一下回到了13年,那時候人們只要一聽你會某種cms就已經(jīng)把你認(rèn)定為了一個標(biāo)準(zhǔn)的程序員一樣锹漱。
所謂分布式箭养,是數(shù)據(jù)庫的一種標(biāo)準(zhǔn)。因為數(shù)據(jù)庫有很多種哥牍,比如常見的mysql毕泌,sqlserver,oracle嗅辣,mongdb等等撼泛。
比如說吧,mysql就是一個標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫澡谭,其實數(shù)據(jù)庫的標(biāo)準(zhǔn)一共就兩種愿题,一種是關(guān)系型數(shù)據(jù)庫,一種是分布式蛙奖。
有什么不同?
別說了潘酗,我懵了。什么關(guān)系雁仲,什么分布仔夺。不都是存東西嗎。
那我們先說說關(guān)系型數(shù)據(jù)庫:
是的攒砖,其實數(shù)據(jù)庫就是用來存東西的缸兔。但也看怎么存。說簡單點吹艇,關(guān)系型數(shù)據(jù)庫存的就是表格惰蜜,把你的數(shù)據(jù)一行一行,一列一列的寫成一個excel受神。然后保存到硬盤的某個地方抛猖。
再說簡單點,給數(shù)字排序鼻听,1后面肯定是2樟结,2后面肯定是3。這就是最基本的線性關(guān)系精算。
這樣線性關(guān)系有好處也有壞處,好處就是一致性高(例如你同時執(zhí)行三條語句碎连,只要一個報錯灰羽,其余全部不執(zhí)行。),安全和維護(hù)方便廉嚼,硬件消耗小玫镐。
缺點是,正因為他用了這個方式怠噪,所有數(shù)據(jù)都存成了一個excel恐似。不管你查哪個數(shù)據(jù)都要調(diào)用整個表蝇棉,而且擦剑,他只用硬盤不用內(nèi)存,要知道內(nèi)存比硬盤快的可不是一點半點霹陡。所以導(dǎo)致了他性能低下憋槐。
回頭再看分布式:
分布式双藕,是把數(shù)據(jù)存成json,注意阳仔,json可沒有類似于數(shù)組那樣的下標(biāo)忧陪,也就是說,分布式只有層級關(guān)系近范,而沒有類似數(shù)組那樣的邏輯關(guān)系嘶摊。
分布式因為沒有線性關(guān)系,所以他也不需要把數(shù)據(jù)存成一個excel了评矩,他直接存成了一個一個的普通文本文件叶堆,使用的時候,在根據(jù)層級關(guān)系組合成一個大型數(shù)據(jù)庫稚照。
而且在儲存的時候蹂空,使用內(nèi)存而不是硬盤,這點太可怕了果录,因為內(nèi)存比硬盤速度快上枕,所以那閃電一般的儲存和查詢速度優(yōu)勢立刻高下立判。
不過弱恒,你說分布式毫無缺點嗎辨萍,至少從咱們上面說的來看,也不全是返弹,首先锈玉,它使用內(nèi)存而不是硬盤,導(dǎo)致了它會一次性占用大量的硬件性能义起,然后拉背,當(dāng)我們需要一個嚴(yán)謹(jǐn)關(guān)系的文件數(shù)據(jù)庫時,例如默终,銀行系統(tǒng)椅棺。前面我們說了分布式數(shù)據(jù)庫犁罩,很難保持操作的一致性(一次執(zhí)行多條語句的時候,一個出錯全部停止两疚。但是床估,分布式依然會把不出錯的執(zhí)行完)這就比較坑了。
所以使用分布式還是關(guān)系型數(shù)據(jù)庫還是要看具體的業(yè)務(wù)诱渤。如果你做的是產(chǎn)品而不是數(shù)據(jù)收集丐巫,就不要使用分布式,反過來也一樣勺美,如果你需要不停的收發(fā)數(shù)據(jù)递胧,例如營銷推廣收集用戶手機(jī)號等。
分布式將會是你的不二選擇励烦。
總結(jié)
那么谓着,分布式數(shù)據(jù)庫有哪些呢,目前來看坛掠,mongodb和elasticsearch是唯二的選擇赊锚,但是這倆數(shù)據(jù)庫在操作上elasticsearch要更簡單一些,它的所有操作都通過api實現(xiàn)屉栓,后面我們會詳細(xì)講解舷蒲。
好的,現(xiàn)在你應(yīng)該已經(jīng)對分布式數(shù)據(jù)庫有了一個基本的概念了友多,那么牲平,讓我們馬上上手來安裝一個elasticsearch一覽分布式數(shù)據(jù)庫的英姿吧。