什么時候用Mongo

這為什么會用mongo?這還用得著mysql?這你怎么用redis!斗幼!是我承認(rèn),上述問題每個月都會在我的內(nèi)心中糾結(jié)那么一兩次抚垄,于是我痛下決心決定給自己定下一個標(biāo)準(zhǔn)蜕窿,什么時候用什么比較好。

1.讀寫間的區(qū)別

①Redis
redis的數(shù)據(jù)是存放在服務(wù)器內(nèi)存的呆馁,當(dāng)內(nèi)存滿了以后就需要擴(kuò)容桐经,采用redis分布式方案,為了防止redis數(shù)據(jù)丟失浙滤,可以調(diào)整redis配置阴挣,按照一定的策略將數(shù)據(jù)持久化到硬盤

②MongoDB
Mongo同時使用了內(nèi)存和硬盤,采用MMAP機(jī)制對文件進(jìn)行讀寫,可以簡單理解為將一部分映射到內(nèi)存纺腊,然后再從內(nèi)存查

③Mysql
mysql毫無疑問是存在硬盤的畔咧,就是這么硬

2.查找數(shù)據(jù)的區(qū)別

①Redis
redis采用鍵值對方式存數(shù)據(jù),有key值的時候直接查非骋灸ぃ快

②MongoDB和Mysql
都支持Id(主鍵)和索引誓沸,當(dāng)用id和索引查的時候效率高,沒有id和索引的時候效率低壹粟,對于mysql索引可以看看《高性能Mysql》里面講的很詳細(xì)拜隧。

3.該如何選擇呢

①Redis
讀寫速度快,但是內(nèi)存成本高趁仙,所以一般讀寫頻率比較高且查找簡單(Redis是key-value存儲)的場景比較適合redis洪添,比如用戶的身份驗證信息。

②MongoDB

  • 大尺寸幸撕,低價值
  • 高伸縮性:多服務(wù)器組成的集群數(shù)據(jù)庫
  • 存儲地理坐標(biāo):劃重點薇组,MongoDB的地理坐標(biāo)查詢功能非常強(qiáng)大,這個之前筆者也沒了解過坐儿,稍后我們在下一段試試這個強(qiáng)大的地理坐標(biāo)查詢
  • 不適用于高度事務(wù)和復(fù)雜SQL:雖然高版本mongo已經(jīng)支持了事務(wù)律胀,但是用起來還是沒有傳統(tǒng)關(guān)系型來的自在宋光,所以遇到高度事務(wù)的場景還是不要給自己找麻煩了,用mysql炭菌。復(fù)雜查詢也是罪佳,mongoDB雖然支持查詢語句,但是跟mysql比查詢的能力還是不夠強(qiáng)大(可能是我沒用的很明白黑低,不過歡迎在留言處進(jìn)行反駁)赘艳。

③Mysql
MongoDB不適用的場景就用mysql,沒錯就是這樣克握。

4.MongoDB的地址查詢是什么蕾管,我已經(jīng)等不及了

①輸入沈陽地點的坐標(biāo)百度坐標(biāo)拾取器大家也可以拾取自己家鄉(xiāng)的坐標(biāo)來玩

db.location.insert({"name":"市府廣場","coordinate":{"longitude":123.440708,"latitude":41.810372}})
db.location.insert({"name":"八一公園","coordinate":{"longitude":123.431399,"latitude":41.807845}})
db.location.insert({"name":"華府天地","coordinate":{"longitude":123.441639,"latitude":41.817177}})
db.location.insert({"name":"張士燈具城","coordinate":{"longitude":123.294777,"latitude":41.770025}})

②MongoDB的原生地理索引支持兩種,一個是平面的一個是球面的

  • 平面索引
db.location.ensureIndex({'coordinate':'2d'})
  • 球面索引
db.location.ensureIndex({'coordinate':'2dsphere'})

顯而易見,追求精度的話使用球面查最準(zhǔn)菩暗,如果距離跨度不大用平面查就可以掰曾。

③查詢一波

db.location.find({
    "coordinate":{
      //當(dāng)前點坐標(biāo)
     "$near":[123.441363,41.82645],
      //如果指定的點是GeoJSON,則以米為單位指定距離;如果指定的點是遺留坐標(biāo)對停团,則以弧度為單位指定距離
     "$maxDistance":0.1
   }
})

得出的結(jié)果是沒有張士燈具城旷坦,坐標(biāo)查詢文檔

ok,就說這些,歡迎大家指出文章的不足佑稠,已經(jīng)我認(rèn)識的不足秒梅,如果對你有幫助請點贊,謝謝(PHP是世界最好的語言沒有之一)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舌胶,一起剝皮案震驚了整個濱河市捆蜀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辆琅,老刑警劉巖漱办,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婉烟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)暇屋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門似袁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咐刨,你說我怎么就攤上這事昙衅。” “怎么了定鸟?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵而涉,是天一觀的道長。 經(jīng)常有香客問我联予,道長啼县,這世上最難降的妖魔是什么材原? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮季眷,結(jié)果婚禮上余蟹,老公的妹妹穿的比我還像新娘。我一直安慰自己子刮,他們只是感情好威酒,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挺峡,像睡著了一般葵孤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上橱赠,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天佛呻,我揣著相機(jī)與錄音,去河邊找鬼病线。 笑死吓著,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的送挑。 我是一名探鬼主播绑莺,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惕耕!你這毒婦竟也來了纺裁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤司澎,失蹤者是張志新(化名)和其女友劉穎欺缘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挤安,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡谚殊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蛤铜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫩絮。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖围肥,靈堂內(nèi)的尸體忽然破棺而出剿干,到底是詐尸還是另有隱情,我是刑警寧澤穆刻,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布置尔,位于F島的核電站,受9級特大地震影響氢伟,放射性物質(zhì)發(fā)生泄漏榜轿。R本人自食惡果不足惜幽歼,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望差导。 院中可真熱鬧试躏,春花似錦、人聲如沸设褐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽助析。三九已至犀被,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間外冀,已是汗流浹背寡键。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留雪隧,地道東北人西轩。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像脑沿,于是被迫代替她去往敵國和親藕畔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容