一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

MySQL與NoSQL——SQL與NoSQL的融合

  寫這一篇內(nèi)容的原因是MySQL5.6.2突然推出了memcached的功能。NoSQL to InnoDB with Memcached的出現(xiàn),可以看出NoSQL對(duì)關(guān)系數(shù)據(jù)庫(kù)的確產(chǎn)生了巨大的影響,個(gè)人覺得這是一個(gè)非常大的進(jìn)步,可以讓開發(fā)人員更加方便的使用NoSQL和關(guān)系數(shù)據(jù)庫(kù)。NoSQL一般被認(rèn)為性能高于關(guān)系數(shù)據(jù)庫(kù),那么直接在InnoDB之上提供NoSQL功能并和MySQL共存是否是一個(gè)更好的選擇呢?

  MySQL with HandlerSocket

  去年在twitter上看到HandlerSocket的出現(xiàn),并宣稱性能是Memcached的兩倍時(shí),非常令人吃驚,居然可以達(dá)到750000qps。接著HandlerSocket成為NoSQL領(lǐng)域談?wù)摰慕裹c(diǎn)之一, 大量的人開始想要嘗試,并做過一些自己的性能測(cè)試。 下圖是HandlerSocket的結(jié)構(gòu)圖:

圖1 HandlerSocket結(jié)構(gòu)圖(來源于官方)

  HandlerSocket的出現(xiàn),給我們眼前一亮的感覺。原來InnoDB的性能已經(jīng)足夠好,并可以直接提供NoSQL的功能。最大的好處就是可以共享MySQL的功能,DBA以前的經(jīng)驗(yàn)一樣可以用。但是有些小小的風(fēng)險(xiǎn):

  • HandlerSocket沒有與MySQL一起發(fā)布版本,因此對(duì)于使用MyISAM引擎的用戶是無緣的。不過現(xiàn)在Percona-Server已經(jīng)集成了HandlerSocket,可以非常方便的使用。
  • 目前大規(guī)模的成功案例并不多,國(guó)內(nèi)也只有少部分公司在嘗試,我知道的有飛信開放平臺(tái),據(jù)說還不錯(cuò)。
  • 官方給出的測(cè)試數(shù)據(jù)在應(yīng)用場(chǎng)景上其實(shí)并不充分,至少測(cè)試的場(chǎng)景跟我們實(shí)際使用的場(chǎng)景相差很大。但是毫無疑問, HandlerSocket的性能比直接使用MySQL肯定要高效得多。

  InnoDB with Memcached

  也許是因?yàn)镠andlerSocket的火爆的沖擊,也許是受HandlerSocket的啟發(fā),MySQL開始關(guān)注NoSQL領(lǐng)域的應(yīng)用,并在MySQL5.6.2版本增加了通過Memcached協(xié)議直接訪問原生Innodb API的功能。

  InnoDB with Memcached是在提供MySQL服務(wù)的同一進(jìn)程中提供Memcached服務(wù) ,這與HandlerSocket的架構(gòu)模式幾乎是一樣的。雖然目前InnoDB with Memcached還是預(yù)覽版本,但是我個(gè)人更看好它,因?yàn)椋?/p>

  • 它使用Memcached協(xié)議,并同時(shí)支持文本和二進(jìn)制協(xié)議,在client的選擇和成熟度上就要?jiǎng)俪鲈S多;
  • 其支持的三種cache模式,不但可以省去開發(fā)中使用Memcached來緩存數(shù)據(jù)的麻煩,并且具有更好的可靠性和數(shù)據(jù)一致性;
  • 應(yīng)用程序中,可以使用高效的memcached協(xié)議來操作數(shù)據(jù),同時(shí)也可以使用sql進(jìn)行復(fù)雜的查詢操作;

  注意:目前通過memcached的更新操作不會(huì)記錄到binlog中,未來的版本會(huì)支持。

圖二 InnoDB with Memcached

Memcached and MySQL Cluster

  顯而易見,我們會(huì)想到MySQL Cluster結(jié)合Memcached是一個(gè)更好的組合,MySQL Cluster提供了99.999%高可用性,并真正提供了去中心化的無縫高可擴(kuò)展性。還有什么比這更人興奮的呢。

  MySQL已經(jīng)提供了這樣的功能,源代碼在這里。這里有一個(gè)O'Reilly MySql Conference大會(huì)的PPT演示,你也可以看下這個(gè)功能開發(fā)者的一篇博客

圖三 NDB with Memcached

  MySQL Cluster雖然具有高可靠性和無縫擴(kuò)展的優(yōu)勢(shì),但是對(duì)于復(fù)雜SQL查詢的效率卻不能令人滿意。不過對(duì)于僅僅依賴于key-value查詢和寫入的海量數(shù)據(jù)存儲(chǔ)需求,MySQL Cluster with Memcached應(yīng)該是個(gè)很好的選擇。

  總結(jié)

  Memcached協(xié)議由于其簡(jiǎn)單、協(xié)議輕量、存在大量的client,所以提供兼容Memcached協(xié)議的產(chǎn)品比較占據(jù)先天的優(yōu)勢(shì)。

  MySQL提供NoSQL的功能,個(gè)人覺得并不是MySQL耐不住寂寞,而是的確在響應(yīng)用戶的需求。我前面的文章也說過,NoSQL只是一個(gè)概念,并不是一個(gè)數(shù)據(jù)庫(kù) 產(chǎn)品,MySQL也可以是NoSQL,現(xiàn)在也正應(yīng)了這句話。NoSQL從架構(gòu)上就約束了開發(fā)者的架構(gòu)和開發(fā)方式,從而提高擴(kuò)展性和性能,而NoSQL和MySQL的融合,也同時(shí)提供了復(fù)雜查詢功能。

  雖然MySQL提供了NoSQL功能,如果你要嘗試的話,你的數(shù)據(jù)庫(kù)設(shè)計(jì)必須從NoSQL從發(fā),然后再考慮SQL查詢功能。

  SQL與NoSQL的融合的確會(huì)給開發(fā)者帶來方便,比如最近很流行的Mongodb,它吸引開發(fā)最大的點(diǎn)就是支持簡(jiǎn)單的關(guān)系查詢。SQL與NoSQL的融合可能是未來很多數(shù)據(jù)庫(kù)產(chǎn)品的一個(gè)趨勢(shì)。但是純NoSQL數(shù)據(jù)庫(kù)的優(yōu)勢(shì)也是顯著的,就是他的簡(jiǎn)單、高效、易擴(kuò)展。

it知識(shí)庫(kù)MySQL與NoSQL——SQL與NoSQL的融合,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 狠狠色婷婷丁香六月 | 五月网址 | 狠狠色狠狠色综合网 | 久久不射网 | 中文资源在线观看 | 久久精品国产精品亚洲红杏 | 成人www视频 | 久久全国免费久久青青小草 | 亚洲成a人片在线网站 | 久久久久精彩视频 | 欧美大成色www永久网站 | 国产精品12p | 国产国产人精品视频69 | 亚洲综合激情 | 日韩欧美一区二区三区中文精品 | 555夜色555亚洲夜色 | 亚洲精品第一国产综合高清 | 精品一区二区三区四区 | 亚洲精品高清国产一线久久97 | 中文字幕黄色 | 337p日本大胆欧美人术艺术精品 | 欧美人善zozσ性伦交 | 国产成人91高清精品免费 | 91欧美在线| 午夜视频在线看 | 日本一区二区成人教育 | 亚洲美女色视频 | 国内外成人在线视频 | 色综合久久88色综合天天 | 欧美激情a∨在线视频播放 欧美激情不卡 | caoporn国产精品免费视频 | 国产高级黄区18勿进一区二区 | 视频一区中文字幕 | 色吧亚洲欧美另类 | 久久er精品视频 | 国产黄色三级网站 | 精品亚洲成a人在线观看 | 国产精品久久久久久久久齐齐 | 色综合久久九月婷婷色综合 | 女人与拘一级毛片 | 亚洲丝袜中文字幕 |