最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
nosql代替mysql,nosql的概念

數(shù)據(jù)多的時候為什么要使用redis而不用mysql?

通常來說,當數(shù)據(jù)多、并發(fā)量大的時候,架構(gòu)中可以引入Redis,幫助提升架構(gòu)的整體性能,減少Mysql(或其他數(shù)據(jù)庫)的壓力,但不是使用Redis,就不用MySQL。

成都創(chuàng)新互聯(lián)主營蘭陵網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app軟件開發(fā)公司,蘭陵h5小程序開發(fā)搭建,蘭陵網(wǎng)站營銷推廣歡迎蘭陵等地區(qū)企業(yè)咨詢

因為Redis的性能十分優(yōu)越,可以支持每秒十幾萬此的讀/寫操作,并且它還支持持久化、集群部署、分布式、主從同步等,Redis在高并發(fā)的場景下數(shù)據(jù)的安全和一致性,所以它經(jīng)常用于兩個場景:

緩存

判斷數(shù)據(jù)是否適合緩存到Redis中,可以從幾個方面考慮: 會經(jīng)常查詢么?命中率如何?寫操作多么?數(shù)據(jù)大小?

我們經(jīng)常采用這樣的方式將數(shù)據(jù)刷到Redis中:查詢的請求過來,現(xiàn)在Redis中查詢,如果查詢不到,就查詢數(shù)據(jù)庫拿到數(shù)據(jù),再放到緩存中,這樣第二次相同的查詢請求過來,就可以直接在Redis中拿到數(shù)據(jù);不過要注意【緩存穿透】的問題。

緩存的刷新會比較復雜,通常是修改完數(shù)據(jù)庫之后,還需要對Redis中的數(shù)據(jù)進行操作;代碼很簡單,但是需要保證這兩步為同一事務,或最終的事務一致性。

高速讀寫

常見的就是計數(shù)器,比如一篇文章的閱讀量,不可能每一次閱讀就在數(shù)據(jù)庫里面update一次。

高并發(fā)的場景很適合使用Redis,比如雙11秒殺,庫存一共就一千件,到了秒殺的時間,通常會在極為短暫的時間內(nèi),有數(shù)萬級的請求達到服務器,如果使用數(shù)據(jù)庫的話,很可能在這一瞬間造成數(shù)據(jù)庫的崩潰,所以通常會使用Redis(秒殺的場景會比較復雜,Redis只是其中之一,例如如果請求超過某個數(shù)量的時候,多余的請求就會被限流)。

這種高并發(fā)的場景,是當請求達到服務器的時候,直接在Redis上讀寫,請求不會訪問到數(shù)據(jù)庫;程序會在合適的時間,比如一千件庫存都被秒殺,再將數(shù)據(jù)批量寫到數(shù)據(jù)庫中。

所以通常來說,在必要的時候引入Redis,可以減少MySQL(或其他)數(shù)據(jù)庫的壓力,兩者不是替代的關(guān)系 。

我將持續(xù)分享Java開發(fā)、架構(gòu)設計、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關(guān)注。

Redis和MySQL的應用場景是不同的。

通常來說,沒有說用Redis就不用MySQL的這種情況。

因為Redis是一種非關(guān)系型數(shù)據(jù)庫(NoSQL),而MySQL是一種關(guān)系型數(shù)據(jù)庫。

和Redis同類的數(shù)據(jù)庫還有MongoDB和Memchache(其實并沒有持久化數(shù)據(jù))

那關(guān)系型數(shù)據(jù)庫現(xiàn)在常用的一般有MySQL,SQL Server,Oracle。

我們先來了解一下關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的區(qū)別吧。

1.存儲方式

關(guān)系型數(shù)據(jù)庫是表格式的,因此存儲在表的行和列中。他們之間很容易關(guān)聯(lián)協(xié)作存儲,提取數(shù)據(jù)很方便。而Nosql數(shù)據(jù)庫則與其相反,他是大塊的組合在一起。通常存儲在數(shù)據(jù)集中,就像文檔、鍵值對或者圖結(jié)構(gòu)。

2.存儲結(jié)構(gòu)

關(guān)系型數(shù)據(jù)庫對應的是結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)表都預先定義了結(jié)構(gòu)(列的定義),結(jié)構(gòu)描述了數(shù)據(jù)的形式和內(nèi)容。這一點對數(shù)據(jù)建模至關(guān)重要,雖然預定義結(jié)構(gòu)帶來了可靠性和穩(wěn)定性,但是修改這些數(shù)據(jù)比較困難。而Nosql數(shù)據(jù)庫基于動態(tài)結(jié)構(gòu),使用與非結(jié)構(gòu)化數(shù)據(jù)。因為Nosql數(shù)據(jù)庫是動態(tài)結(jié)構(gòu),可以很容易適應數(shù)據(jù)類型和結(jié)構(gòu)的變化。

3.存儲規(guī)范

關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)存儲為了更高的規(guī)范性,把數(shù)據(jù)分割為最小的關(guān)系表以避免重復,獲得精簡的空間利用。雖然管理起來很清晰,但是單個操作設計到多張表的時候,數(shù)據(jù)管理就顯得有點麻煩。而Nosql數(shù)據(jù)存儲在平面數(shù)據(jù)集中,數(shù)據(jù)經(jīng)常可能會重復。單個數(shù)據(jù)庫很少被分隔開,而是存儲成了一個整體,這樣整塊數(shù)據(jù)更加便于讀寫

4.存儲擴展

這可能是兩者之間最大的區(qū)別,關(guān)系型數(shù)據(jù)庫是縱向擴展,也就是說想要提高處理能力,要使用速度更快的計算機。因為數(shù)據(jù)存儲在關(guān)系表中,操作的性能瓶頸可能涉及到多個表,需要通過提升計算機性能來克服。雖然有很大的擴展空間,但是最終會達到縱向擴展的上限。而Nosql數(shù)據(jù)庫是橫向擴展的,它的存儲天然就是分布式的,可以通過給資源池添加更多的普通數(shù)據(jù)庫服務器來分擔負載。

5.查詢方式

關(guān)系型數(shù)據(jù)庫通過結(jié)構(gòu)化查詢語言來操作數(shù)據(jù)庫(就是我們通常說的SQL)。SQL支持數(shù)據(jù)庫CURD操作的功能非常強大,是業(yè)界的標準用法。而Nosql查詢以塊為單元操作數(shù)據(jù),使用的是非結(jié)構(gòu)化查詢語言(UnQl),它是沒有標準的。關(guān)系型數(shù)據(jù)庫表中主鍵的概念對應Nosql中存儲文檔的ID。關(guān)系型數(shù)據(jù)庫使用預定義優(yōu)化方式(比如索引)來加快查詢操作,而Nosql更簡單更精確的數(shù)據(jù)訪問模式。

6.事務

關(guān)系型數(shù)據(jù)庫遵循ACID規(guī)則(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)),而Nosql數(shù)據(jù)庫遵循BASE原則(基本可用(Basically Availble)、軟/柔性事務(Soft-state )、最終一致性(Eventual Consistency))。由于關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)強一致性,所以對事務的支持很好。關(guān)系型數(shù)據(jù)庫支持對事務原子性細粒度控制,并且易于回滾事務。而Nosql數(shù)據(jù)庫是在CAP(一致性、可用性、分區(qū)容忍度)中任選兩項,因為基于節(jié)點的分布式系統(tǒng)中,很難全部滿足,所以對事務的支持不是很好,雖然也可以使用事務,但是并不是Nosql的閃光點。

7.性能

關(guān)系型數(shù)據(jù)庫為了維護數(shù)據(jù)的一致性付出了巨大的代價,讀寫性能比較差。在面對高并發(fā)讀寫性能非常差,面對海量數(shù)據(jù)的時候效率非常低。而Nosql存儲的格式都是key-value類型的,并且存儲在內(nèi)存中,非常容易存儲,而且對于數(shù)據(jù)的 一致性是 弱要求。Nosql無需sql的解析,提高了讀寫性能。

8.授權(quán)方式

大多數(shù)的關(guān)系型數(shù)據(jù)庫都是付費的并且價格昂貴,成本較大(MySQL是開源的,所以應用的場景最多),而Nosql數(shù)據(jù)庫通常都是開源的。

所以,在實際的應用環(huán)境中,我們一般會使用MySQL存儲我們的業(yè)務過程中的數(shù)據(jù),因為這些數(shù)據(jù)之間的關(guān)系比較復雜,我們常常會需要在查詢一個表的數(shù)據(jù)時候,將其他關(guān)系表的數(shù)據(jù)查詢出來,例如,查詢某個用戶的訂單,那至少是需要用戶表和訂單表的數(shù)據(jù)。

查詢某個商品的銷售數(shù)據(jù),那可能就會需要用戶表,訂單表,訂單明細表,商品表等等。

而在這樣的使用場景中,我們使用Redis來存儲的話,也就是KeyValue形式存儲的話,其實并不能滿足我們的需要。

即使Redis的讀取效率再高,我們也沒法用。

但,對于某些沒有關(guān)聯(lián)少,且需要高頻率讀寫,我們使用Redis就能夠很好的提高整個體統(tǒng)的并發(fā)能力。

例如商品的庫存信息,我們雖然在MySQL中會有這樣的字段,但是我們并不想MySQL的數(shù)據(jù)庫被高頻的讀寫,因為使用這樣會導致我的商品表或者庫存表IO非常高,從而影響整個體統(tǒng)的效率。

所以,對于這樣的數(shù)據(jù),且有沒有什么復雜邏輯關(guān)系(就只是隸屬于SKU)的數(shù)據(jù),我們就可以放在Redis里面,下單直接在Redis中減掉庫存,這樣,我們的訂單的并發(fā)能力就能夠提高了。

個人覺得應該站出來更正一下,相反的數(shù)據(jù)量大,更不應該用redis。

為什么?

因為redis是內(nèi)存型數(shù)據(jù)庫啊,是放在內(nèi)存里的。

設想一下,假如你的電腦100G的資料,都用redis來存儲,那么你需要100G以上的內(nèi)存!

使用場景

Redis最明顯的用例之一是將其用作緩存。只是保存熱數(shù)據(jù),或者具有過期的cache。

例如facebook,使用Memcached來作為其會話緩存。

總之,沒有見過哪個大公司數(shù)據(jù)量大了,換掉mysql用redis的。

題主你錯了,不是用redis代替MySQL,而是引入redis來優(yōu)化。

BAT里越來越多的項目組已經(jīng)采用了redis+MySQL的架構(gòu)來開發(fā)平臺工具。

如題主所說,當數(shù)據(jù)多的時候,MySQL的查詢效率會大打折扣。我們通常默認如果查詢的字段包含索引的話,返回是毫秒級別的。但是在實際工作中,我曾經(jīng)遇到過一張包含10個字段的表,1800萬+條數(shù)據(jù),當某種場景下,我們不得不根據(jù)一個未加索引的字段進行精確查詢的時候,單條sql語句的執(zhí)行時長有時能夠達到2min以上,就更別提如果用like這種模糊查詢的話,其效率將會多么低下。

我們最開始是希望能夠通過增加索引的方式解決,但是面對千萬級別的數(shù)據(jù)量,我們也不敢貿(mào)然加索引,因為一旦數(shù)據(jù)庫hang住,期間的所有數(shù)據(jù)庫寫入請求都會被放到等待隊列中,如果請求是通過http請求發(fā)過來的,很有可能導致服務發(fā)生分鐘級別的超時不響應。

經(jīng)過一番調(diào)研,最終敲定的解決方案是引入redis作為緩存。redis具有運行效率高,數(shù)據(jù)查詢速度快,支持多種存儲類型以及事務等優(yōu)勢,我們把經(jīng)常讀取,而不經(jīng)常改動的數(shù)據(jù)放入redis中,服務器讀取這類數(shù)據(jù)的時候時候,直接與redis通信,極大的緩解了MySQL的壓力。

然而,我在上面也說了,是redis+MySQL結(jié)合的方式,而不是替代。原因就是redis雖然讀寫很快,但是不適合做數(shù)據(jù)持久層,主要原因是使用redis做數(shù)據(jù)落盤是要以效率作為代價的,即每隔制定的時間,redis就要去進行數(shù)據(jù)備份/落盤,這對于單線程的它來說,勢必會因“分心”而影響效率,結(jié)果得不償失。

樓主你好,首先糾正下,數(shù)據(jù)多并不是一定就用Redis,Redis歸屬于NoSQL數(shù)據(jù)庫中,其特點擁有高性能讀寫數(shù)據(jù)速度,主要解決業(yè)務效率瓶頸。下面就詳細說下Redis的相比MySQL優(yōu)點。( 關(guān)于Redis詳細了解參見我近期文章: )

讀寫異常快

Redis非??欤棵肟蓤?zhí)行大約10萬次的讀寫速度。

豐富的數(shù)據(jù)類型

Redis支持豐富的數(shù)據(jù)類型,有二進制字符串、列表、集合、排序集和散列等等。這使得Redis很容易被用來解決各種問題,因為我們知道哪些問題可以更好使用地哪些數(shù)據(jù)類型來處理解決。

原子性

Redis的所有操作都是原子操作,這確保如果兩個客戶端并發(fā)訪問,Redis服務器能接收更新的值。

豐富實用工具 支持異機主從復制

Redis支持主從復制的配置,它可以實現(xiàn)主服務器的完全拷貝。

以上為開發(fā)者青睞Redis的主要幾個可取之處。但是,請注意實際生產(chǎn)環(huán)境中企業(yè)都是結(jié)合Redis和MySQL的特定進行不同應用場景的取舍。 如緩存——熱數(shù)據(jù)、計數(shù)器、消息隊列(與ActiveMQ,RocketMQ等工具類似)、位操作(大數(shù)據(jù)處理)、分布式鎖與單線程機制、最新列表(如新聞列表頁面最新的新聞列表)以及排行榜等等 可以看見Redis大顯身手的場景。可是對于嚴謹?shù)臄?shù)據(jù)準確度和復雜的關(guān)系型應用MySQL等關(guān)系型數(shù)據(jù)庫依然不可替。

web應用中一般采用MySQL+Redis的方式,web應用每次先訪問Redis,如果沒有找到數(shù)據(jù),才去訪問MySQL。

本質(zhì)區(qū)別

1、mysql:數(shù)據(jù)放在磁盤 redis:數(shù)據(jù)放在內(nèi)存。

首先要知道m(xù)ysql存儲在磁盤里,redis存儲在內(nèi)存里,redis既可以用來做持久存儲,也可以做緩存,而目前大多數(shù)公司的存儲都是mysql + redis,mysql作為主存儲,redis作為輔助存儲被用作緩存,加快訪問讀取的速度,提高性能。

使用場景區(qū)別

1、mysql支持sql查詢,可以實現(xiàn)一些關(guān)聯(lián)的查詢以及統(tǒng)計;

2、redis對內(nèi)存要求比較高,在有限的條件下不能把所有數(shù)據(jù)都放在redis;

3、mysql偏向于存數(shù)據(jù),redis偏向于快速取數(shù)據(jù),但redis查詢復雜的表關(guān)系時不如mysql,所以可以把熱門的數(shù)據(jù)放redis,mysql存基本數(shù)據(jù)。

mysql的運行機制

mysql作為持久化存儲的關(guān)系型數(shù)據(jù)庫,相對薄弱的地方在于每次請求訪問數(shù)據(jù)庫時,都存在著I/O操作,如果反復頻繁的訪問數(shù)據(jù)庫。第一:會在反復鏈接數(shù)據(jù)庫上花費大量時間,從而導致運行效率過慢;第二:反復地訪問數(shù)據(jù)庫也會導致數(shù)據(jù)庫的負載過高,那么此時緩存的概念就衍生了出來。

Redis持久化

由于Redis的數(shù)據(jù)都存放在內(nèi)存中,如果沒有配置持久化,redis重啟后數(shù)據(jù)就全丟失了,于是需要開啟redis的持久化功能,將數(shù)據(jù)保存到磁盤上,當redis重啟后,可以從磁盤中恢復數(shù)據(jù)。redis提供兩種方式進行持久化,一種是RDB持久化(原理是將Reids在內(nèi)存中的數(shù)據(jù)庫記錄定時dump到磁盤上的RDB持久化),另外一種是AOF(append only file)持久化(原理是將Reids的操作日志以追加的方式寫入文件)。

redis是放在內(nèi)存的~!

數(shù)據(jù)量多少絕對不是選擇redis和mysql的準則,因為無論是mysql和redis都可以集群擴展,約束它們的只是硬件(即你有沒有那么多錢搭建上千個組成的集群),我個人覺得數(shù)據(jù)讀取的快慢可能是選擇的標準之一,另外工作中往往是兩者同是使用,因為mysql存儲在硬盤,做持久化存儲,而redis存儲在內(nèi)存中做緩存提升效率。

關(guān)系型數(shù)據(jù)庫是必不可少的,因為只有關(guān)系型數(shù)據(jù)庫才能提供給你各種各樣的查詢方式。如果有一系列的數(shù)據(jù)會頻繁的查詢,那么就用redis進行非持久化的存儲,以供查詢使用,是解決并發(fā)性能問題的其中一個手段

mySQL的替代方案

隨著 MySQL 被 Oracle 收購,MySQL 的用戶和開發(fā)者開始質(zhì)疑開源數(shù)據(jù)庫的命運,與此同時他們開始尋找替代品。

有文章寫到了放棄 MySQL 的五大理由: MySQL 不如其它關(guān)系型數(shù)據(jù)庫管理系統(tǒng)那樣成熟; MySQL 是開源的...但只有近似而已; MySQL 的性能無法與競爭對手相提并論; MySQL 是 Oracle 所有的,而不是社區(qū)驅(qū)動的; 越來越多的強勁對手。 從 MySQL 轉(zhuǎn)向 MariaDB的代表廠家:谷歌(2013年9月)、RedHat(2013年6月)、維基百科(2013年4月)

MySQL 在 2008 年被Sun以10億美金所收購,MySQL 創(chuàng)始人 Michael Widenius 則不滿 Sun 開發(fā)團隊腳步過慢,憤而離職成立開源數(shù)據(jù)庫聯(lián)盟,另外從現(xiàn)有 MySQL 程序代碼中,開發(fā)出另一個延伸分支版本,也就是名為瑪莉亞數(shù)據(jù)庫的企業(yè)級開源數(shù)據(jù)庫 。

瑪莉亞數(shù)據(jù)庫如同 MySQL 的影子版本,瑪莉亞數(shù)據(jù)庫是 MySQL 的一個分支版本(branch),而不是衍生版本(folk),提供的功能可和 MySQL 完全兼容。 從 MySQL 轉(zhuǎn)向 PostgreSQL的代表廠家:蘋果(2011年)

PostgreSQL是一個自由的對象-關(guān)系數(shù)據(jù)庫服務器(數(shù)據(jù)庫管理系統(tǒng))。PostgreSQL支持大部分 SQL標準并且提供了許多其他現(xiàn)代特性:復雜查詢、外鍵、觸發(fā)器、視圖、事務完整性、MVCC。同樣,PostgreSQL 可以用許多方法擴展,比如, 通過增加新的數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引方法、過程語言。并且,因為許可證的靈活,任何人都可以以任何目的免費使用、修改、和分發(fā) PostgreSQL,不管是私用、商用、還是學術(shù)研究使用。

PostgreSQL 也受 NoSQL 思想的啟發(fā),希望能夠在今后可以給使用者更多可定制可調(diào)節(jié)的功能(不是說這個成熟的關(guān)系性數(shù)據(jù)庫系統(tǒng)要向 NoSQL 轉(zhuǎn)變)。 NoSQL(NoSQL = Not Only SQL),意即“不僅僅是 SQL”,是一項全新的數(shù)據(jù)庫革命性運動。NoSQL指的是非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng) web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應付 web2.0 網(wǎng)站,特別是超大規(guī)模和高并發(fā)的 SNS 類型的 web2.0 純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。

其代表的開源軟件如:Membase、MongoDB、Hypertable、Apache Cassandra、CouchDB等。 Oracle自 Oracle 10g 后推出對應的免費版。

既然有了NoSQL為什么還用MySQL,為什么不直接用nosql來存數(shù)據(jù)?

關(guān)系型數(shù)據(jù)庫中的表都是存儲一些格式化的數(shù)據(jù)結(jié)構(gòu),每個元組字段的組成都一樣,即使不是每個元組都需要所有的字段,但數(shù)據(jù)庫會為每個元組分配所有的字段,這樣的結(jié)構(gòu)可以便于表與表之間進行連接等操作,但從另一個角度來說它也是關(guān)系型數(shù)據(jù)庫性能瓶頸的一個因素。而非關(guān)系型數(shù)據(jù)庫以鍵值對存儲,它的結(jié)構(gòu)不固定,每一個元組可以有不一樣的字段,每個元組可以根據(jù)需要增加一些自己的鍵值對,這樣就不會局限于固定的結(jié)構(gòu),可以減少一些時間和空間的開銷。

特點:

它們可以處理超大量的數(shù)據(jù)。

它們運行在便宜的PC服務器集群上。

它們擊碎了性能瓶頸。

沒有過多的操作。

Bootstrap支持

缺點:

但是一些人承認,沒有正式的官方支持,萬一出了差錯會是可怕的,至少很多管理人員是這樣看。

此外,nosql并未形成一定標準,各種產(chǎn)品層出不窮,內(nèi)部混亂,各種項目還需時間來檢驗

NoSQL和MySQL的區(qū)別大嗎?

即非關(guān)系型數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫。

MySQL的優(yōu)點:事務處理—保持數(shù)據(jù)的一致性;由于以標準化為前提,數(shù)據(jù)更新的開銷很?。ㄏ嗤淖侄位旧现挥幸惶帲豢梢赃M行Join等復雜查詢

NoSQL的優(yōu)點:首先它是基于內(nèi)存的,也就是數(shù)據(jù)放在內(nèi)存中,而不是像數(shù)據(jù)庫那樣把數(shù)據(jù)放在磁盤上,而內(nèi)存的讀取速度是磁盤讀取速度的幾十倍到上百倍,所以NoSQL工具的速度遠比數(shù)據(jù)庫讀取速度要快得多,滿足了高響應的要求。即使NoSQL將數(shù)據(jù)放在磁盤中,它也是一種半結(jié)構(gòu)化的數(shù)據(jù) 格式,讀取到解析的復雜度遠比MySQL要簡單,這是因為MySQL存儲的是經(jīng)過結(jié)構(gòu)化、多范式等有復雜規(guī)則的數(shù)據(jù),還原為內(nèi)存結(jié)構(gòu)的速度較慢。NoSQL在很大程度上滿足了高并發(fā)、快速讀/和響應的要求,所以它也是Java互聯(lián)網(wǎng)系統(tǒng)的利器。

簡單的擴展:典型例子是Cassandra,由于其架構(gòu)是類似于經(jīng)典的P2P,所以能通過輕松地添加新的節(jié)點來擴展這個集群;

低廉的成本:這是大多數(shù)分布式數(shù)據(jù)庫共有的特點,因為主要都是開源軟件,沒有昂貴的License成本;

NoSQL的缺點:大多數(shù)NoSQL數(shù)據(jù)庫都不支持事務,也不像 SQL Server和Oracle那樣能提供各種附加功能,比如BI和報表等; 不提供對SQL的支持

那么該如何選擇?

如果規(guī)模和性能比24小時的數(shù)據(jù)一致性更重要,那NoSQL是一個理想的選擇 (NoSQL依賴于BASE模型——基本可用、軟狀態(tài)、最終一致性)。

但如果要保證到“始終一致”,尤其是對于機密信息和財務信息,那么MySQL很可能是最優(yōu)的選擇(MySQL依賴于ACID模型——原子性、一致性、獨立性和耐久性)。

如果關(guān)系數(shù)據(jù)庫在你的應用場景中,完全能夠很好的工作,而你又是非常善于使用和維護關(guān)系數(shù)據(jù)庫的,那么我覺得你完全沒有必要遷移到NoSQL上面,除非你是個喜歡折騰的人。如果你是在金融,電信等以數(shù)據(jù)為王的關(guān)鍵領(lǐng)域,目前使用的是Oracle數(shù)據(jù)庫來提供高可靠性的,除非遇到特別大的瓶頸,不然也別貿(mào)然嘗試NoSQL。

然而,在WEB2.0的網(wǎng)站中,關(guān)系數(shù)據(jù)庫大部分都出現(xiàn)了瓶頸。在磁盤IO、數(shù)據(jù)庫可擴展上都花費了開發(fā)人員相當多的精力來優(yōu)化,比如做分表分庫(database sharding)、主從復制、異構(gòu)復制等等,然而,這些工作需要的技術(shù)能力越來越高,也越來越具有挑戰(zhàn)性。如果你正在經(jīng)歷這些場合,那么我覺得你應該嘗試一下NoSQL了。

具體問題具體分析

MySQL體積小、速度快、成本低、結(jié)構(gòu)穩(wěn)定、便于查詢,可以保證數(shù)據(jù)的一致性,但缺乏靈活性。

NoSQL高性能、高擴展、高可用,不用局限于固定的結(jié)構(gòu),減少了時間和空間上的開銷,卻又很難保證數(shù)據(jù)一致性。

————————————————

版權(quán)聲明:本文為CSDN博主「蒟蒻熊」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:


本文名稱:nosql代替mysql,nosql的概念
當前URL:http://fisionsoft.com.cn/article/dseoodh.html