數據庫的“輪回”—周而復始,循環往復
原創何謂輪回?
唯物主義云:輪回乃是物質的循環過程,整個過程中能量守恒。
數據庫云:輪回就是File到RDBMS到NoSQL的過程。自數據庫產生以來,主要經歷了四個階段:人工管理階段;文件系統階段;數據庫系統階段;高級數據庫階段。除去人工管理階段,輪回說,是否說明數據庫再次回到文件管理階段?那么這是進化嗎?怎么看都像是在退化,倒退!
記者帶著同樣的疑問,找到了新浪DBA楊海潮先生,他說,人們不斷的權衡,用什么能更好的滿足自身的業務需求;也不斷的探索,去選擇合適自己的存儲和檢索方式,而思索這些問題的主要依賴即自身的業務。任何一種技術都是不分好壞的,而是在于那種方式更適合自己。這種“輪回”看似回到了原點,思想卻大不相同,確實是一種進步。
就像事物的辯證發展:經過兩次否定,出現了三個階段即“肯定-否定-否定之否定”,形成一個周期。事物的這種否定之否定的過程,從內容上看,是自己發展自己、自己完善自己的過程。從形式上看,是螺旋式上升或波浪式前進,方向是前進上升的,道路是迂回曲折的,是前進性與曲折性的統一。
視覺中國潘凡先生說:“所謂的‘輪回’是形式的輪回,是形式的周而復始。因為用File和NoSQL的一個共同特點,即算法和數據分離比較清楚。如果單純從字面理解,NoSQL和File一樣,一般都是基于簡單K-V模式獲取數據,而SQL則需要使用符合規范的語法去獲取。”
他認為,從背后的含義上看,簡單的事情如果規模上去了,就會帶出另一種復雜度,原先的***方式反而超出其適應范圍了,也許就要回歸到最初的原點重新考慮,所謂的螺旋式上升。
進一步他舉例解釋說:“最早我們作一個簡單的BBS,是沒有關系數據庫,我們可能會把某個用戶的資料都存放于一個文件中。當獲取一個用戶的信息時候,根據它的ID讀取對應的文件名。你可能需要自己作一些索引表,某個字段的一些數據設置一個倒排表,通過這個索引表找到主文件,再讀取出來。但是帶來的問題,就是信息的冗余,以及多維度檢索的復雜性。于是,SQL引擎替代解決了這些很多問題,條件是你需要按照標準書寫SQL。而目前NoSQL的一個特點就是,但是并發和數據量都非常大,超出了SQL數據庫的最初設計的***適應范圍,因此分庫,分表的方案也就來解決這種問題。而NoSQL的大部分產品,則干脆簡化模型,將其分解為單獨的K-V模式,模式單一,反而可以優化。也許這種實現形式和早前的File模式有點相似吧。”
但是,依舊如同事物的辯證發展,在一次訪談中一位不愿具名的專家這樣對記者說:“現在的主流依舊是RDBMS,至少相當一段時間時間內,關系型數據庫應該還是主流應用。”不可否認,現階段關系型數據庫是主流,但是,事物總是要發展的就像是File被RDBMS多替代的時候一樣。上升是趨勢,轉變需要過程。
輪回之盤已經轉動,即使很慢,即使肉眼不可見,即使我們經常忽略,但是它依舊在發生。但是我們也要注意到此輪回非彼輪回,它是輪回,貌似回到原點;它也不是單純的輪回,因為它提升了自己。佛教云:六道輪回,即他們認為一切有生命的東西,如不尋求“解脫”,就永遠在“六道” 中生死相續,無有止息。佛曰:只可意會不可言傳。
【編輯推薦】