粉碎5個NoSQL流言:各司其職 NoSQL的出現比關係型更早
與許多流行詞一樣,NoSQL在大肆宣傳後,許多荒謬的觀點產生,本篇文章將揭穿其中廣被認同的5個。
流言1:NoSQL是新鮮事物
從根本上說,NoSQL資料庫系統的幾大屬性都不是出於關係模型,而關係模型首次揭露是在1970年 Codd釋出的文章中。
那麼,這是否就意味著在1970年之前不存在任何其它的資料庫系統?不容爭論的是,這些資料庫卻是真實存在,比如CODASYL系統,它顯然不是關係型資料庫;基於其主要屬性,NoSQL的誕生其實明顯早於傳統關係型資料庫。
流言2:遺棄資料結構模型
從長遠上看,這個流言的影響更為惡劣。雖然許多NoSQL解決方案都不會強迫你使用嚴格的資料結構模型,但是絕對不意味它可以忽視。而在實際操作中也是恰恰相反的,隨著時間的流逝,你必須明白你為什麼要使用這些屬性。
有些情況可能會更加危險,舉個MongoDB的例子:作為一個良好的實踐,許多經驗豐富的使用者都會建議去建立文件的屬性,在文件大小改變時,通過預分配大小去避免文件的完整拷貝。還有在查詢優化時,你必須要清楚你的結構模型以便做索引。
流言3:NoSQL的擴充套件性永遠都是卓越的
高擴充套件性是NoSQL的主要賣點之一,但是僅僅選擇一個NoSQL解決方案並不意味著擴充套件性問題的解決,真正解決問題的是優秀的架構。
不錯,這裡確實存在通過選擇NoSQL讓系統擴充套件性得到了大幅度的提升。然而勝利的背後依稀可見的是資料結構的變化,在特定場景下使用正確的結構替換錯的。
這個流言中有趣的地方是忽略了同樣提供優秀擴充套件性的關係型資料庫,不錯,使用NoSQL方案進行擴充套件確實非常容易,但是NoSQL的選擇絕對不是問題解決的唯一功臣。
流言4:不公平的基準
你如何才能公平的比較兩個完全不同的持久化方案,比如:鍵值、關係、文件等等。而當下許多NoSQL與關係型資料庫的對比也並不公平。
當你的查詢只涉及一個鍵時,NoSQL資料庫的效能明顯要優於關係型資料庫。公平的基準應該建立在同型別產品的比較之上,類似MySQL與MongoDB的對比根本無任何意義。即使系統效能取得了巨大提升,也只是開始時使用了錯誤的資料結構模型而已。
流言5:NoSQL可以大幅度的提高生產力
這一點只發生在夢中,或者是開始選擇了錯誤的工具。在選擇NoSQL之前,我們已經使用了多年的關係型資料庫,這裡只存在團隊花大量精力去適應NoSQL的情況。
很少人談及這一點, NoSQL採用最大的挑戰是文化,而不是技術。新事物之所以難以接受,是因為“老夥計”用起來很舒服,即使新事物更加得優秀。生產力源於實踐,而不是魔術。
總結
對比近年來研發領域發生的事件,NoSQL絕對可以稱得上最有意義之一;然而需要銘記的是,任何提升都需要付出同等的代價。
原文連結: Some myths about NoSQL
相關文章
- SQL與NoSQL(關係型與非關係型)資料庫的區別SQL資料庫
- NoSQL:從關係型資料庫到非關係型資料庫SQL資料庫
- 最受歡迎的 NoSQL 和關係型資料庫SQL資料庫
- 並推出了關係型資料庫功能來補充其核心NoSQL資料庫功能資料庫SQL
- NoSQL資料庫探討 -- 非關係型資料庫SQL資料庫
- 非關係型資料庫(NOSQL)和關係型資料庫(SQL)區別詳解資料庫SQL
- Redux 包教包會(三):各司其職,重拾初心Redux
- 常用 NoSQL 比較SQL
- NoSQL的現狀SQL
- 關係型資料庫和NOSQL資料庫的優缺點介紹資料庫SQL
- 關係型資料庫與NoSQL資料庫的優勢與劣勢資料庫SQL
- 如何將資料從Hadoop匯出到關係型和NoSQL資料庫?HadoopSQL資料庫
- 有關NOSQL事務SQL
- 阿里P8架構師談:NoSQL和SQL的區別,NoSQL的使用場景和選型比較阿里架構SQL
- NoSQLSQL
- Nosql/Redis/ttserver/Flare/memcache比較SQLRedisTTSServer
- 開源NoSQL資料庫5個"基友”SQL資料庫
- 5個基於JAVA的開源NoSQL資料庫JavaSQL資料庫
- NoSQL:一個帝國的崛起SQL
- 聊聊 NoSQLSQL
- Why NoSQL?SQL
- NoSQL 初探SQL
- 企業級NoSQL與開源NoSQL的區別SQL
- SQL、NoSQL和NewSQL的優缺點比較SQL
- 轉享:NoSQL 圖資料庫比較SQL資料庫
- Nosql 資料管理系統與模型的比較SQL模型
- Nosql分類SQL
- NoSQL之CassandraSQL
- NoSQL之HBaseSQL
- NoSQL RevolutionSQL
- NOSQL之旅---HBaseSQL
- NoSQL 述評SQL
- 不做 NoSQL 的 CouchDB(轉)SQL
- NoSQL資料庫概念與NoSQL資料庫家族SQL資料庫
- 【轉載】NoSQL開篇——為什麼要使用NoSQLSQL
- 8 種 NoSQL 資料庫系統對比SQL資料庫
- 8種NoSQL資料庫系統對比SQL資料庫
- Aerospike 宣佈開源其記憶體中的 NoSQL 資料庫ROS記憶體SQL資料庫