新聞中心
想用MongoDB取代MySQL可以嗎?
Mongodb作為最靠近關系數(shù)據(jù)庫的Nosql存儲,取代MySQL可以嗎?

從功能角度看,是可以取代的。
關系數(shù)據(jù)庫應該有的核心功能它都有了:B樹索引,事務(4.0)。
一些比較重要的小更新,比如Decimal128(3.4)的添加都讓它的功能更加完善。
你在Mysql里面用的復雜查詢基本上都可以用管道或者MapReduce實現(xiàn)。
我在好幾個項目中完全使用的Mongodb,經(jīng)驗如下:
* 關聯(lián)查詢麻煩,所以Mongodb在設計模型的時候傾向于數(shù)據(jù)都內聯(lián),配合少量的In 查詢。這樣也會導致數(shù)據(jù)冗余后一致性更新的問題。
* 設計動態(tài)表格時,Mongodb的體驗時非常好的。
* 4.0之前的沒有事務,碰到金錢相關的服務,需要自己在服務中構造事務環(huán)境,否則一旦失敗無法回滾。這也會造成這塊代碼膨脹。
謝謝邀請。
我現(xiàn)在帶的項目用到了MongoDB,本人對MongoDB也有一定的了解,下面我談談自己的看法。
先一句話概括:MongoDB和MySQL(關系型數(shù)據(jù)庫)各有特點,它們適合的場景不同;而企業(yè)級應用的大部分場景,MongoDB是無法完全取代MySQL的。
在分析這個問題之前,我們還是看看MongoDB的定義:MongoDB是一個數(shù)據(jù)庫;再稍微詳細一點兒,它是一個開源的、基于分布式文件存儲的、非關系型數(shù)據(jù)庫。
說到非關系型數(shù)據(jù)庫,最有名的可能就是Redis了,它是一種Key-Value類型的數(shù)據(jù)庫;而MongoDB,它是文檔型數(shù)據(jù)庫的一種,它的存儲方式類似于JSON。
脫離業(yè)務場景,空談技術架構都是耍流氓。
我們公司同一個項目就同時在用Mysql和MongoDB,希望通過下面介紹可以幫助你真正了解到Mysql和MongoDB優(yōu)劣對比及實際業(yè)務應用場景。
以下來自最新的db-engines的數(shù)據(jù)庫人氣排行榜
接下來我們看一下前十名的趨勢變化圖:
關系數(shù)據(jù)庫前10名如下:
文檔數(shù)據(jù)庫前10名如下:
先給出結論:不可以取代!
能提出這樣的問題,肯定是對Mongodb不是很了解,來看看MongoDB是什么,能做什么,不能做什么吧。
MongoDB
mongoDB是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
特點:
它的特點是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。主要功能特性有:- 面向集合存儲,易存儲對象類型的數(shù)據(jù)。
- 模式自由。
- 支持動態(tài)查詢。
- 支持完全索引,包含內部對象。
- 支持查詢。
- 支持復制和故障恢復。
- 使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻等)。
- 自動處理碎片,以支持云計算層次的擴展性。
- 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
- 文件存儲格式為BSON(一種JSON的擴展)。
- 可通過網(wǎng)絡訪問。
使用原理
所謂“面向集合”(Collection-Oriented),意思是數(shù)據(jù)被分組存儲在數(shù)據(jù)集中,被稱為一個集合(Collection)。每個集合在數(shù)據(jù)庫中都有一個唯一的標識名,并且可以包含無限數(shù)目的文檔。集合的概念類似關系型數(shù)據(jù)庫(RDBMS)里的表(table),不同的是它不需要定義任何模式(schema)。Nytro MegaRAID技術中的閃存高速緩存算法,能夠快速識別數(shù)據(jù)庫內大數(shù)據(jù)集中的熱數(shù)據(jù),提供一致的性能改進。模式自由(schema-free),意味著對于存儲在mongodb數(shù)據(jù)庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的文件存儲在同一個數(shù)據(jù)庫里。存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標識一個文檔,為字符串類型,而值則可以是各種復雜的文件類型。我們稱這種存儲形式為BSON(Binary Serialized Document Format)。MongoDB已經(jīng)在多個站點部署,其主要場景如下:1)網(wǎng)站實時數(shù)據(jù)處理。它非常適合實時的插入、更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復制及高度伸縮性。2)緩存。由于性能很高,它適合作為信息基礎設施的緩存層。在系統(tǒng)重啟之后,由它搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。3)高伸縮性的場景。非常適合由數(shù)十或數(shù)百臺服務器組成的數(shù)據(jù)庫,它的路線圖中已經(jīng)包含對MapReduce引擎的內置支持。不適用的場景如下:
1)要求高度事務性的系統(tǒng)。
2)傳統(tǒng)的商業(yè)智能應用。3)復雜的跨文檔(表)級聯(lián)查詢。
結論
從MongoDB不適用場景就可以看出其不可能替代MySQL.
到此,以上就是小編對于mongodb 字符串截取的問題就介紹到這了,希望這1點解答對大家有用。
本文名稱:想用MongoDB取代MySQL可以嗎?(mongodb怎么分割字符串)
瀏覽路徑:http://www.dlmjj.cn/article/dhspgho.html


咨詢
建站咨詢
