本篇文章為大家展示了MongoDB與MySQL哪個(gè)好,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
在新市等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷,成都外貿(mào)網(wǎng)站制作,新市網(wǎng)站建設(shè)費(fèi)用合理。
什么是MySQL / MariaDB?
MySQL AB的Monty Widenius和David Axmark最初于1994年開(kāi)始開(kāi)發(fā)MySQL。產(chǎn)品名稱中的“ My”是指Widenius的女兒,而不是英語(yǔ)單詞“ my”。MySQL旨在與mSQL(又名Mini)兼容。 SQL),并添加了SQL查詢層和開(kāi)放源代碼許可(實(shí)際上是專有和GPL雙重許可)。MySQL的公共發(fā)行版于1996年底開(kāi)始,并且每年或每?jī)赡瓿掷m(xù)發(fā)行一次。MySQL是當(dāng)前最受歡迎的關(guān)系數(shù)據(jù)庫(kù)。
Sun Microsystems于2008年以10億美元的價(jià)格收購(gòu)了MySQL AB,Oracle于2010年收購(gòu)了Sun。在Oracle收購(gòu)MySQL的廣泛關(guān)注中,Widenius在收購(gòu)Oracle之前就將MySQL 5.5合并到了MariaDB中。MariaDB努力維護(hù)與Oracle MySQL版本的兼容性。
與功能更強(qiáng)大的商業(yè)關(guān)系數(shù)據(jù)庫(kù)(例如Oracle數(shù)據(jù)庫(kù),IBM DB / 2和Microsoft SQL Server)相比,MySQL最初是一個(gè)相當(dāng)?shù)投说年P(guān)系數(shù)據(jù)庫(kù),盡管它足以成為動(dòng)態(tài)網(wǎng)站的后備存儲(chǔ)。多年來(lái),它增加了您希望從關(guān)系數(shù)據(jù)庫(kù)獲得的大多數(shù)功能,包括事務(wù),參照完整性約束,存儲(chǔ)過(guò)程,游標(biāo),全文索引和搜索,地理索引和搜索以及群集。
盡管MySQL現(xiàn)在支持“大數(shù)據(jù)庫(kù)”功能,例如主從部署,與Memcached一起使用以及水平分片,但它仍通常用于中小型部署。將MySQL擴(kuò)展到多個(gè)從屬服務(wù)器可以提高讀取性能,但是只有主服務(wù)器才能接受寫(xiě)請(qǐng)求。
AWS提供了兩種形式的MySQL即服務(wù),即Amazon RDS和Amazon Aurora。后者具有更高的性能,可以處理TB級(jí)的數(shù)據(jù),更新副本的延遲時(shí)間更短,并且可以直接與Oracle數(shù)據(jù)庫(kù)和SQL Server競(jìng)爭(zhēng)。
什么是MongoDB?
MongoDB是高度可伸縮的操作文檔數(shù)據(jù)庫(kù),可在開(kāi)源版本和商業(yè)企業(yè)版本中使用,它可以在本地運(yùn)行或作為托管云服務(wù)運(yùn)行。托管云服務(wù)稱為MongoDB Atlas。
MongoDB無(wú)疑是NoSql數(shù)據(jù)庫(kù)中最受歡迎的數(shù)據(jù)庫(kù)。它的文檔數(shù)據(jù)模型為開(kāi)發(fā)人員提供了極大的靈活性,而其分布式體系結(jié)構(gòu)則提供了很好的可伸縮性。因此,通常選擇MongoDB用于必須管理大量數(shù)據(jù),得益于水平可伸縮性并處理不適合關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)的應(yīng)用程序。
MongoDB是一個(gè)基于文檔的存儲(chǔ),在其之上還具有一個(gè)基于圖形的存儲(chǔ)。MongoDB實(shí)際上并不存儲(chǔ)JSON:它存儲(chǔ)BSON(二進(jìn)制JSON),該擴(kuò)展了JSON表示(字符串)以包括其他類型,例如int,long,date,浮點(diǎn),decimal128和地理空間坐標(biāo)。
MongoDB可以使用數(shù)據(jù)的類型生成正確的索引類型,從而在數(shù)據(jù)的單個(gè)副本上生成多模式圖形,地理空間,B樹(shù)和全文本索引。MongoDB使您可以在任何文檔字段上創(chuàng)建索引。MongoDB 4具有多文檔事務(wù),這意味著即使必須標(biāo)準(zhǔn)化數(shù)據(jù)設(shè)計(jì),您仍然可以獲得ACID屬性。
默認(rèn)情況下,MongoDB使用動(dòng)態(tài)模式,有時(shí)稱為無(wú)模式。單個(gè)集合中的文檔不需要具有相同的字段集,并且字段的數(shù)據(jù)類型可以在集合中的不同文檔之間有所不同。您可以隨時(shí)使用動(dòng)態(tài)模式更改文檔結(jié)構(gòu)。
但是,可以使用架構(gòu)治理。從MongoDB 3.6開(kāi)始,MongoDB支持JSON模式驗(yàn)證,您可以在驗(yàn)證器表達(dá)式中將其打開(kāi)。
LAMP和MEAN堆棧
在LAMP和MEAN堆棧上存在很多變化。例如,您可以在Windows(WAMP)或MacOS(MAMP)上運(yùn)行而不是Linux OS。您可以運(yùn)行IIS(WIMP),而不是Windows上的Apache Web服務(wù)器。
您可以運(yùn)行PostgreSQL或SQL Server,而不是LAMP堆棧中的MySQL關(guān)系數(shù)據(jù)庫(kù)。如果您需要全球分布,則可以運(yùn)行CockroachDB或Google Cloud Spanner。可以使用Perl或Python代替PHP語(yǔ)言。如果要使用Java或C#進(jìn)行編碼,則需要考慮單獨(dú)的堆棧系列。
您可以運(yùn)行Couchbase或Azure Cosmos DB以獲得更好的全局分布,而不是MEAN堆棧中的MongoDB文檔數(shù)據(jù)庫(kù)??梢允褂檬€(gè)Node.js Web服務(wù)器框架中的任何一個(gè)來(lái)代替Express 。除了AngularJS前端框架,您還可以運(yùn)行Angular 2或React。
如何為您的應(yīng)用程序選擇數(shù)據(jù)庫(kù)
選擇數(shù)據(jù)庫(kù)時(shí)要問(wèn)的最重要的問(wèn)題是:
您希望在應(yīng)用程序成熟時(shí)存儲(chǔ)多少數(shù)據(jù)?
您希望在高峰負(fù)載下同時(shí)處理多少個(gè)用戶?
您的應(yīng)用程序需要什么可用性,可伸縮性,延遲,吞吐量和數(shù)據(jù)一致性?
您的數(shù)據(jù)庫(kù)架構(gòu)多久更改一次?
您的用戶群體的地理分布是什么?
您的數(shù)據(jù)的自然“形狀”是什么?
您的應(yīng)用程序需要在線事務(wù)處理(OLTP),分析查詢(OLAP)還是同時(shí)需要兩者?
您期望生產(chǎn)中的讀寫(xiě)比例是多少?
您需要地理查詢和/或全文查詢嗎?
您首選的編程語(yǔ)言是什么?
你有預(yù)算嗎?如果是這樣,它將涵蓋許可和支持合同嗎?
這些問(wèn)題中的幾個(gè)會(huì)趨于縮小數(shù)據(jù)庫(kù)的選擇范圍,但是與制定LAMP堆棧時(shí)相比,我們有更多選擇。如果您要構(gòu)建一個(gè)應(yīng)用程序,并且該應(yīng)用程序必須在99.999%的時(shí)間內(nèi)對(duì)全世界的用戶都具有高度的一致性,那么只有少數(shù)幾個(gè)數(shù)據(jù)庫(kù)適合您。如果您的應(yīng)用程序?qū)⒃诠ぷ魅盏纳衔?點(diǎn)至下午6點(diǎn)在一個(gè)國(guó)家/地區(qū)使用,并且可以容忍最終的一致性,那么幾乎所有數(shù)據(jù)庫(kù)都可以使用,盡管某些數(shù)據(jù)庫(kù)對(duì)于開(kāi)發(fā)人員和操作員而言更容易,而某些數(shù)據(jù)庫(kù)則可以為您的主要使用場(chǎng)景提供更好的性能。
雖然LAMP和MEAN堆棧一次是Web應(yīng)用程序的良好解決方案,但現(xiàn)在都不是最佳選擇。而不是盲目采用任何一種,您應(yīng)該仔細(xì)考慮用例,并找到一種可在可預(yù)見(jiàn)的將來(lái)為您的應(yīng)用程序服務(wù)的體系結(jié)構(gòu)。
SQL還是NOSQL?
您什么時(shí)候需要關(guān)系數(shù)據(jù)庫(kù)(例如MySQL)用于新應(yīng)用程序?除了對(duì)標(biāo)準(zhǔn)SQL的明顯支持外,關(guān)系數(shù)據(jù)庫(kù)本身將數(shù)據(jù)強(qiáng)制為具有一致的強(qiáng)類型字段的表格模式,并且只要您利用規(guī)范化就可以幫助您避免數(shù)據(jù)重復(fù)。
如果需要避免丟失數(shù)據(jù),則可以NOT NULL在創(chuàng)建或修改表時(shí)聲明字段。如果您需要由開(kāi)放地理空間聯(lián)盟定義的地理查詢,則大多數(shù)關(guān)系數(shù)據(jù)庫(kù)都將提供可靠的實(shí)現(xiàn)。而且,如果您需要全文搜索,則大多數(shù)關(guān)系數(shù)據(jù)庫(kù)都允許您在文本字段上定義倒排列表索引,F(xiàn)ULLTEXT在MySQL中稱為索引。
另一方面,如果您還需要偶爾的自由格式文檔,則MySQL和許多其他關(guān)系數(shù)據(jù)庫(kù)也支持RFC 7159定義的JSON數(shù)據(jù)。如果您還想使用XML文檔和XPath或XSLT,則大多數(shù)關(guān)系數(shù)據(jù)庫(kù)都可以提供這種能力。
您何時(shí)需要像MongoDB這樣的文檔數(shù)據(jù)庫(kù)?如果您的主要用例需要允許使用自由格式的數(shù)據(jù),在文檔之間更改類型的字段,隨時(shí)間變化的架構(gòu)或嵌套的文檔,則NoSQL數(shù)據(jù)庫(kù)將滿足要求。另外,如果您的應(yīng)用程序是用JavaScript編寫(xiě)的,那么文檔數(shù)據(jù)庫(kù)的JSON格式將很自然。
上述內(nèi)容就是MongoDB與MySQL哪個(gè)好,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章名稱:MongoDB與MySQL哪個(gè)好
新聞來(lái)源:http://chinadenli.net/article0/jhhiio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、網(wǎng)站維護(hù)、品牌網(wǎng)站建設(shè)、商城網(wǎng)站、面包屑導(dǎo)航、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)