首頁> 產品技術 > Vernox融合中国福利3d庫

Vernox融合中国福利3d庫

大中国福利3d時代迅猛發展,傳統的關係型中国福利3d庫已經無法滿足用戶需求,半結構化中国福利3d、非結構化中国福利3d佔比日益增加,高吞吐,海量的中国福利3d壓力以及移動互聯網時代,高併發的訪問都需要新型中国福利3d庫來支撐。內存中国福利3d庫、文檔中国福利3d庫、列存儲中国福利3d庫、圖中国福利3d庫等新技術層出不窮。這樣的技術發展趨勢對中国福利3d庫的使用者和維護者來說,帶來了更高的學習成本和技術更新壓力。

企業在雲計算的大環境下開始轉型升級,以需求驅動轉型成中国福利3d驅動,支撐大中国福利3d分析計算的底層中国福利3d庫就顯得尤爲重要。目前,當需要操作和存儲異構中国福利3d時,企業大多采用各類型中国福利3d庫多管齊下的策略,這樣導致了操作的不流暢和聯合檢索的複雜,因此,融合中国福利3d庫是必然的趨勢。

Vernox融合了事務、Json、圖表三個功能於一體,不基於任何開源代碼,完全自主研發,並且創新性的將B+樹索引與後綴排序算法相結合,形成了獨具競爭力優勢的字符串後綴索引,在中文檢索速度上超越傳統大型關係型中国福利3d庫近十倍,融合、高效、原創,是Vernox立足的根本,未來的競爭是中国福利3d競爭,掌握了底層中国福利3d庫技術,即是掌握了核心競爭力。
展開
1、融合關係、圖、文檔(json)於一身

Vernox原生支持圖中国福利3d以節點和關係的形態存儲,並建立網狀圖索引。圖索引爲圖表的基礎索引,不能單獨創建。檢索方式按照廣度優先方式或深度優先方式進行遍歷,對社交關係等網狀中国福利3d的存儲和操作具有天然優勢。同時,Vernox還原生支持json文本格式,極大方便了對多樣性文本中国福利3d的存儲和操作,不用再擔心新增中国福利3d是否能對應表結構中的字段,真正實現了大中国福利3d的實時存儲,也方便了上層大中国福利3d分析引擎的應用。Vernox採用json列的方式存儲json格式的中国福利3d,即每張表有一個名爲“$”的字段,该字段用于存储json格式数据。

Vernox不僅提供了結構化中国福利3d,文檔型中国福利3d和圖中国福利3d的存儲能力,更大的亮點是Vernox在內核中国福利3d操作上,實現了不同類型中国福利3d的Join操作,並以標準SQL語法對上層應用提供服務能力,大大提升了應用成同時操作多種類型中国福利3d的便利性和實時性。一句Join SQL語句即可完成傳統模式下,不同中国福利3d庫查詢,應用程序內存拼裝,應用處理一致性的低效率,高複雜的開發過程。

目前市場上有針對圖關係中国福利3d的圖中国福利3d庫,也有針對多樣性文本中国福利3d的文檔中国福利3d庫,但是,他們都是各自獨立應用,如果業務中有需求用到多種中国福利3d庫,那麼同時操控多個庫將是一個龐大而複雜的工程。因此Vernox決定將多種功能融於一身,集合關係、圖中国福利3d庫、文檔中国福利3d庫的優勢,打造出國內鮮有的融合中国福利3d庫。
 
2、Vernox核心優勢-字符串索引

在關係型中国福利3d庫中,對於字符串類型的字段建立B+樹索引的方式都是將完整的字符串存入B+樹索引的節點中。在節點內部按照整個字符串的字典序排列。這樣的B+樹索引方式存在的問題是,對帶有前百分號的字符串模糊匹配支持並不是友好。具體而言,對於like‘%X%’或者like‘%X’形式的查詢條件只能使用覆蓋索引遍歷或者全表遍歷,只有like‘X%’形式的條件可以很好的使用B+樹索引。而在目前在許多應用中會大量使用like‘%X%’形式的查詢,傳統關係型中国福利3d庫在該情況下所使用的全表遍歷策略效率十分緩慢。

針對這樣的情況,Vernox在已有的B+樹索引的基礎上,引入了後綴數組。自主研發出高效精準的字符串索引,用於漢字模糊匹配。具體原理如下:  
字符串的後綴是指字符串某位置與字符串結尾之間的子串,而後綴數組(Suffix Array)則是一個存放該字符串所有後綴的一維數組,這些子串按照字典序由小到大依次排列。


從上面對後綴數組的描述中不難發現,在後綴數組中所有後綴按照其字典序排列,所以可以通過二分法快速的找到符合條件的後綴,這與B+樹的查詢規則相同。所以我們將B+樹索引與後綴數組這兩種已有技術相結合,提出了一種基於後綴數組的字符串B+樹索引,從而使B+樹索引可以支持帶有前百分號的字符串模糊匹配。
 
3、Vernox核心優勢-基於成本的智能優化

大部分的關係型中国福利3d庫,sql解析一共分爲4步:
1、 語法檢查:此步驟檢查sql語句的拼寫是否符合標準語法;
2、語義檢查:此步驟檢查sql語句中對象及字段是否真實存在,以及該用戶是否具備相應操作權限;
3、語句解析:關係型中国福利3d庫在這一步時根據統計信息生成基於成本的執行計劃,執行計劃將一直緩存於內存中,以備將來複用。
   
Sql解析主要分爲2類:硬解析(hard parse)和軟解析(soft parse),硬解析即每次執行語句時都根據當前條件成本產生執行計劃;軟解析在sql解析這一步,一旦在執行計劃中找到相似模板,即調用對應模板的執行計劃進行解析,軟解析省去了評估條件成本所耗費的大量系統資源。
·
执行sql,返回结果

Vernox全程採用硬解析。軟解析雖然能節省系統資源,但存在一個問題,完全根據緩存中的執行計劃模板進行匹配解析,有可能會造成索引先走成本較高條件,再走成本較低條件,這樣雖然節省了系統資源,但sql解析本身的成本依然很高。

對於傳統關係型中国福利3d庫來說,他們的架構本身是基於磁盤,如果每次sql解析都採用硬解析,頻繁的磁盤I/O會耗費大量CPU資源,而Vernox對索引緩存結構進行改進,保證了所有sql解析都在內存進行,極大降低了系統資源消耗,因此我們決定全程使用sql硬解析,實現了真正基於成本的智能查詢。

內存索引的成本評估精確到每個條件命中的條數,磁盤索引的成本評估也可以做到每個條件命中的葉子中国福利3d塊數。