數據庫是要拿來用的,不是用來PK先進性的
周五參加了WAIC后又和一家上海本地的數據庫廠商交流了一下午。等我要買高鐵票回南京的時候已經買不到票了。好不容易刷到一張到蘇州北的高鐵票,我就上了車。上車后突然想起還不如就回蘇州老家住一晚算了。到家后洗漱完畢已經快10點了,發現剛才我開了半天空調的房間里溫度還是很高,仔細一看空調的工作狀態似乎不太正常。于是試了試書房的空調,顯然是能制冷的,不管怎么樣先對付一宿,明早再找維修人員過來看看吧。
第二天,修空調的師傅看了看,說這臺有問題的空調運行狀態是正常的,空調沒毛病,不過今年天熱,鄉下電網的電壓不穩定,你這臺變頻空調在這種情況下,很可能因為電壓不穩而導致壓縮機無法正常工作,影響制冷效率。你書房那臺老式的空調反而是比較皮實的,所以這幾天你還是睡書房吧。老師傅最后說最近這幾天遇到多起這種情況了,村里已經有些人家把變頻空調折舊換了普通空調了。
這個結果倒是有點出乎我的意外了,技術更好的變頻空調反而適應不了相對不穩定的電網,普通空調反而更皮實。在鄉下這樣的應用場景中,技術相對落后的普通空調居然完勝先進的變頻空調。仔細想想,在數據庫領域,似乎也是如此。30多年前,當時技術上相對簡單或者說簡陋的Oracle在與一系列架構水平更高的產品PK中完勝了幾乎所有對手,獲得了全面的勝利,而一些技術上頗有特色的數據庫產品反而都折戟沉沙了,這種勝利在早期大多數是來自于其使用門檻較低。數據庫最終還是要拿來用的,而不是為了PK技術的先進性或者某些領域的領先性的。
我和很多搞數據庫的朋友聊天的時候,總是聽到他們談數據庫的架構如何先進,使用了什么先進的技術,有哪些方面的獨創技術。但是很少聽到他們談自己的數據庫產品和客戶應用場景適配方面的優勢,似乎這些問題都是和應用層接近的,沒啥技術難度,不太值得他們關注。實際上這樣的數據庫開發者與用戶完全脫節了,用戶和數據庫廠商對數據庫的需求完全是不同的,數據庫廠商眼中的先進性與用戶所需要的方便省心地使用數據庫的需求出現了維度偏差,用戶其實不關心,甚至不懂數據庫廠商自己覺得很HIGH的先進性。一個僅僅知道寫SQL的用戶是不會去關注SQL執行引擎里是否使用了向量計算,他們只會關心自己的SQL是不是能夠又快又準確的獲得結果。在最近這兩年的數據庫產品的發布會上,我很少看到某個數據庫廠商宣稱更好的支撐了某些用戶應用場景,而都是介紹一些用戶都不大明白的高大上的技術。我不太清楚他們請來的最終用戶GET到了這些新特性沒有,搞了多年數據庫的我,也需要邊看邊翻百度才能完全搞清楚這些對我而言還有點“新”的名詞。
前陣子在幫一個用戶測試一個數據庫國產化改造項目,某數據庫不說最后如何,光是把數據從Oracle遷移到目標國產數據庫中就經歷了十分痛苦的過程。測試時遷移的數據量不過幾個TB,而用戶的目標數據庫有近百TB,對于今后利用廠家提供的遷移完整的數據庫,基本上已經把用戶勸退了。實際上以這家企業的規模與技術能力,寫出一個高水平的數據庫遷移工具來并不困難,只是他們并沒有把業務重點放到這種體現不出技術水平的地方而已。還有一些新銳數據庫公司,推出了架構設計與理念都十分新穎,創意滿滿的產品出來,各項技術指標都十分亮眼。不過如果某些用戶真的選擇了這些產品,那么隨之而來的,一定不會是很好的使用體驗。因為除了所謂的創新滿滿的核心,其輔助工具簡陋得令人發指。這也難怪,因為企業規模本來就不大,根本沒有資源往這些不太重要的地方投入寶貴的研發資源。
這些技術含量很低,但是個性化需求十分復雜的“小”工具就如此不重要嗎?答案肯定是否定的,今年年初我和一個數據庫廠商交流的時候,問他們目前研發主要投入在哪些方面。我以為我聽到的回答應該是SQL引擎、CBO優化器、存儲引擎、Oracle兼容性等比較核心的地方。沒想到他們的回答令我十分意外,他們的研發負責人說,目前為了盡快改進用戶現場反饋回來小的需求,他們接近一半的研發人員都投入到了周邊小工具和小功能的新需求上去了。今年信創需求十分強烈,為了讓用戶把數據庫用爽了,他們的主要研發力量在不斷地優化這些看上去技術含量不高,但是十分重要的小功能。
我想只有數據庫產品真正的被用戶認認真真的用起來了,我們的數據庫研發人員才會感受到他們以前無意中的一些偷懶和簡化處理,就變成了用戶使用時的痛苦不堪。數據庫是要拿來用的,只有真的有大量的用戶在認認真真的用你的數據庫產品了,你才會知道用戶需要的到底是什么樣的功能吧。