從memcached看MySQL和關(guān)系數(shù)據(jù)庫的未來
原創(chuàng)【51CTO快譯】幾周前,突然涌現(xiàn)了大量關(guān)于memcached(數(shù)據(jù)庫緩存服務(wù)器)的消息,網(wǎng)絡(luò)服務(wù)商和網(wǎng)絡(luò)投資者也關(guān)注起了這種越來越受歡迎的開源超高速緩存軟件框架。Gear6公開了一個基于memcached的新產(chǎn)品詳細情況,Schooner Information Technologies推出了一套高密度內(nèi)存工具:一個針對MySQL,一個針對memcached。這些訊息與MySQL Conference同時公布。有人認為MySQL是memcached的“殺手級應(yīng)用”,或者反之。其它含有memcached的而不出眾的服務(wù)商還有NorthScale。除了一個介紹其功能的小頁面,它至今沒有發(fā)布任何消息。
相關(guān)資訊:在上個月的MySQL Conference上,MySQL 5.4預(yù)覽版發(fā)布,宣布性能提高90%。另外在前幾日,MySQL創(chuàng)始人宣布創(chuàng)建開源數(shù)據(jù)庫聯(lián)盟。業(yè)界普遍認為這個聯(lián)盟將會令MySQL更上一個新臺階。
其基本形式為,memcached通過在存儲器或緩存中儲存先前請求以推遲應(yīng)用程序?qū)?shù)據(jù)庫的請求。但如果說更大內(nèi)存和相比更常見的memcached對MySQL有這么大幫助,這一開始與MySQL 有什么相干呢?這種通過對緩沖層做必要添加來提高性能的做法,對數(shù)據(jù)庫而言到底是好還是不好?
Memcached是一種減少數(shù)據(jù)庫加載的工具,同時延長單個數(shù)據(jù)庫服務(wù)器壽命,并緩和在多個機器之間擴展數(shù)據(jù)庫的壓力。作為網(wǎng)絡(luò)服務(wù)商的免費且受歡迎的關(guān)系數(shù)據(jù)庫, MySQL在網(wǎng)絡(luò)基礎(chǔ)建設(shè)方面就是關(guān)系數(shù)據(jù)庫的代名詞。(51CTO編者注:隨著云計算的盛行,業(yè)界現(xiàn)在流傳一種關(guān)系數(shù)據(jù)庫的末日是否已經(jīng)來臨的聲音,有關(guān)關(guān)系數(shù)據(jù)庫替代者的討論也層出不窮)
毫無疑問,多年來MySQL一直是網(wǎng)絡(luò)基礎(chǔ)建設(shè)方面的基石。但其在擴展性方面的問題是很明顯的,而且互聯(lián)網(wǎng)已由數(shù)以千萬計的記錄而組成形,很多人相信RDBMS方法的重量級性質(zhì),及其強加的限制最好換成若干相比輕量級替換形式。有這種意圖的有MySQL分支 Drizzle。據(jù)wiki 介紹,Drizzle希望做成“簡潔精悍的查詢運行機器”。在近來與OStatic的一次采訪中,MySQL的副總裁Karen Tegan Padir將“Drizzle Day”贊為conference新星。
更進一步發(fā)展這種簡潔精悍思想的方法包括一系列分布式key-value存儲。運用這種方法的包括CouchDB, Hypertable, HBASE, Tokyo Cabinet, LightCloud 和 Cassandra等等。另外,LinkedIn最大化利用Voldermort項目上的信息。這個項目是他們的key-value存儲,可在線獲得。
現(xiàn)在的大趨勢正從強調(diào)完整性的關(guān)系數(shù)據(jù)庫向新興的強調(diào)擴展的分配式key-value存儲轉(zhuǎn)變。這代表了網(wǎng)路架構(gòu)設(shè)計方面的轉(zhuǎn)換。在網(wǎng)絡(luò)世界,許多依賴于MySQL或其它關(guān)系數(shù)據(jù)庫工具的應(yīng)用程序并不需要繼承全套的相關(guān)性能繼承到這些包里。相反,輕量級流線型方法是更有效的數(shù)據(jù)格式。
MySQL和關(guān)系數(shù)據(jù)庫不會退出,他們的功能也不會全都前面提到的key-value存儲替換掉。但MySQL conference上出現(xiàn)的大量關(guān)于memcached的消息,其中將memcached作為提高MySQL性能的方式,都提出了這樣的問題:擴展及性能的關(guān)鍵所在,及這種狀況到底能持續(xù)多久。
有關(guān)數(shù)據(jù)庫緩存(Memcached)
Memcached是由Danga Interactive開發(fā)的,高性能的,分布式的內(nèi)存對象緩存系統(tǒng),用于在動態(tài)應(yīng)用中減少數(shù)據(jù)庫負載,提升訪問速度。有關(guān)Memcached的詳細介紹,可以閱讀分布式緩存系統(tǒng)memcached簡介與實踐一文。有關(guān)Memcached是如何介入到MySQL的發(fā)展進程中,在一篇2008年底的MySQL回顧文中提供了一些背景介紹。
原文:Is Memcached a Good or Bad Sign for MySQL? by Gary Orenstein
【編輯推薦】