最近有twitter、digg和reddit等多家web 2.0企業宣布從mysql轉而使用非關係型資料庫(nosql)提供可伸縮的資料儲存解決方案,引起了開發者對nosql的強烈關注。
nosql真的會完全取代關係型資料庫嗎?
對此,前google工程師,milo(本地商店搜尋引擎)創始人ted dziuba最近發表標題驚人的部落格「i can't wait for nosql to die」
,對nosql的適用範圍進行了分析。他認為,nosql也會帶來一連串的新問題,並不會成為主流,無法取代關係型資料庫。
他的理由是:cassandra等nosql資料庫在使用上並不方便,比如,修改column family定義時就需要重啟。而且nosql更適合google那樣的規模,而一般的網際網路公司都不是google,早早地去考慮google那樣的規模的可擴充套件性,純粹是浪費時間,存在巨大的商業風險。
他還透露,即使在google,adwords這樣的關鍵產品也是基於mysql實現的。
他在文中最後表示,nosql當然死不了,但是它最終會被邊緣化,就像rails被nosql邊緣化一樣。而dba同學們也用不著擔驚受怕,因為有錢招dba的公司的決策者們都懂實際的生意是怎麼回事兒。
dziuba的文章因為言辭激烈,在社群裡引起了強烈反應。
sql資料庫陣營贊同者大有人在。craigslist工程師、著名的mysql專家jeremy zawodny表示
,在讀此文的時候,不時會心一笑。他說,nosql運動只是軟體不斷進化程序中的正常現象。關係型資料庫也會繼續發展,mysql社群不斷推出的xtradb或innodb外掛程式, pbxt, drizzle都是證據。各種技術競爭的結果是,我們獲得了更多解決問題的選擇。
drizzle專案開發者eric day也表示
,nosql有很多值得學習的,但是目前大部分實際專案的最佳選擇還是關係型資料庫。
nosql陣營當然不會坐視不理,cassandra專案組的eric evans表示
,dziuba提到cassandra修改column family定義的問題其實很容易解決。而且,nosql並不是要取代mysql,事實上twitter仍然在用mysql。如果關係型資料庫能夠承擔負荷,那就用好了;如果不行,請考慮nosql。
而德國知名部落格code monkeyism則嘲笑
dziuba看起來並沒有用mysql做過真實專案,因為mysql如果沒有memcache,基本上無法應付**專案。他認為,nosql將使sql資料庫邊緣化,而且乙個重要理由恰恰是可以節省dba的開銷。
digg的前任首席架構師現在也在創業的joe stump說
,自己現在的創業專案就是用nosql,而且列舉了一系列問題挑戰sql陣營。他表示,無論從可伸縮性、速度、成本各個方面來看,nosql都有sql資料庫無法企及的優勢。
你的專案開始用nosql方案了嗎?你對這一爭論的意見?歡迎反饋。
資料庫分類 SQL資料庫 NoSQL資料庫
一 資料庫產品 二.sql資料庫 sql 是所有關係型資料庫的公共語言 關係型資料庫,是建立在關係模型基礎上的資料庫,借助於集合代數等數學概念和方法來處理資料庫中的資料,我們平常使用的資料庫,像mysql,oracle,sql server等都是傳統的關係型資料庫。關係模型指的就是二維 模型,而乙個...
sql資料庫和nosql資料庫的區別
sql資料庫雖然教程多,支援也很強大,但是隨著網際網路應用的出現,sql資料庫遇到設計上的弊端,sql對錶的定義使得資料橫向擴充套件困難,而且sql資料庫的很多特性也沒有用武之地,例如及時訪問不是必要的,也沒有特別多的事物需求,這些特性都在消耗著sql資料庫的效能 因此nosql資料庫出現 sql資...
關於SQL資料庫和NoSql資料庫的資料庫選擇案例
一 sql和nosql資料庫的特點對比 sql 資料庫的特點 在表中儲存相關聯的資料 在使用之前需要定義表的乙個模式 鼓勵標準化減少資料冗餘 支援從多個表中檢索相關資料表連線在乙個單一的命令 實現資料完整性規則 提供事務使兩個或兩個以上的成功或失敗的資料更改作為乙個原子單元 可以擴充套件 有一些努力...