首页> 产品技术 > Vernox融合数据库

Vernox融合数据库

大数据?#36125;?#36805;猛发展,传统的关系型数据库已经无法满足用户需求,半结构化数据、非结构化数据占比日益增加,高吞吐,海量的数据压力以及移动互联网?#36125;?#39640;并发的访问都需要新型数据库来支撑。内存数据库、文档数据库、列存储数据库、图数据库等新技术层出不穷。这样的技术发展趋势对数据库的使用者和维护者来说,带来了更高的学习成本和技术更新压力。

企业在云计算的大环境下开始转型升级,以需求驱动转型成数据驱动,支撑大数据分析计算的底层数据库就显得?#20219;?#37325;要。目前,当需要操作和存储异构数据时,企业大多采用各类型数据库多管齐下的策略,这样导致了操作的不流畅和联合检索的复杂,因此,融合数据库是必然的趋势。

Vernox融合了事务、Json、图表三个功能于一体,不基于任何开源代码,完全自主研发,并且创新性的将B+树索引与后缀排序算法相结合,形成了独具竞争力优?#39057;?#23383;符串后缀索引,在中文检索速度上超越传统大型关系型数据库近十倍,融合、高效、原创,是Vernox立足的根本,未来的竞争是数据竞争,掌握?#35828;?#23618;数据库技术,即是掌握了核心竞争力。
展开
1、融合关系、图、文档(json)于一身

Vernox原生支持图数据以节点和关系的形态存储,并建立网状图索引。图索引为图表的基础索引,不能单?#26469;?#24314;。检索方式按?#23637;?#24230;优先方式或深度优先方式进行遍历,对社交关系等网状数据的存储和操作具有天?#25381;?#21183;。同时,Vernox还原生支持json文本格式,极大方便了对多样性文本数据的存储和操作,不用再担心新增数据是否能对应表结构中的字段,真正实现了大数据的实?#36125;?#20648;,也方便了上层大数据分析引擎的应用。Vernox采用json列的方式存储json格式的数据,即每张表有一个名为“$”的字段,该字段用于存储json格式数据。

Vernox不仅提供了结构化数据,文档型数据和图数据的存储能力,更大的亮点是Vernox在内核数据操作上,实现了不同类型数据的Join操作,并以标准SQL语法对上层应用提供服务能力,大大提升了应用成同时操作多种类型数据的便利性和实时性。一句Join SQL语句即可完成传统模式下,不同数据库查询,应用程序内存拼装,应用处理一致性的低效率,高复杂?#30446;?#21457;过程。

目前市场上有针对图关系数据的图数据库,也有针对多样性文本数据的文档数据库,但是,他们都是各自独立应用,如果业务中有需求用到多种数据库,那么同时操控多个库将是一个庞大而复杂的工程。因此Vernox决定将多种功能融于一身,集合关系、图数据库、文档数据库的优势,打造出国内鲜有的融合数据库。
 
2、Vernox核心优势-字符串索引

在关系型数据库中,对于字符串类型的字段建立B+树索引的方式都是将完整的字符串存入B+树索引的节点中。在节点内部按照整个字符串的字典序排列。这样的B+树索引方式存在的问题是,?#28304;?#26377;前百分号的字符串模糊匹配支持并不是友好。具体而言,对于like‘%X%’或者like‘%X’形式的查询条件只能使用覆盖索引遍历或者全表遍历,只有like‘X%’形式的条件可以很好的使用B+树索引。而在目前在许多应用中会大量使用like‘%X%’形式的查询,传统关系型数据库在该情况下所使用的全表遍历策略效率十分缓慢。

针对这样的情况,Vernox在已有的B+树索引的基础上,引入了后缀数组。自主研发出高效精准的字符串索引,用于汉字模糊匹配。具体原理如下:   
字符串的后缀是指字符串某位置与字符串结尾之间的子串,而后缀数组(Suffix Array)则是一个存放该字符串所有后缀的一维数组,这些子串按照字典序由小到大?#26469;闻?#21015;。


从上面对后缀数组的描述中不难发现,在后缀数组中所有后缀按?#25484;?#23383;典序排列,所以可以通过二分法快速的?#19994;?#31526;合条件的后?#28023;?#36825;与B+树的查询规则相同。所以我们将B+树索引与后缀数组这两种已有技术相结合,提出了一种基于后缀数组的字符串B+树索引,从而使B+树索引可以支持带有前百分号的字符串模糊匹配。
 
3、Vernox核心优势-基于成本的智能优化

大部分的关系型数据库,sql解析一共分为4步:
1、 语法检查:此步骤检查sql语句的拼写是否符合标?#21152;?#27861;;
2、语义检查:此步骤检查sql语句中对象及字?#38382;?#21542;真实存在,以?#26696;?#29992;户是否具备相应操作权限;
3、语句解析:关系型数据库在这一步?#22791;?#25454;统计信息生成基于成本的执行计划,执行计划将一直缓存于内存中,以备将来复用。
   
Sql解析主要分为2类:硬解析(hard parse)和软解析(soft parse),硬解析即每次执行语句时都根据当前条件成本产生执行计划;软解析在sql解析这一步,一旦在执行计划中?#19994;?#30456;似模板,即调用对应模板的执行计划进行解析,软解析省去了评估条件成本所耗?#35757;?#22823;量系统资?#30784;?br /> ·
执行sql,返回结果

Vernox全程采用硬解析。软解析虽然能节省系统资源,但存在一个问题,完全根据缓存中的执行计划模板进行匹配解析,有可能会造成索引先走成本较高条件,再走成本?#31995;?#26465;件,这样虽然节省了系统资源,但sql解析本身的成本依然很高。

对于传统关系型数据库来说,他们的架构本身是基于?#25490;蹋?#22914;果每次sql解析都采用硬解析,频繁的?#25490;蘄/O会耗费大量CPU资源,而Vernox对索引缓存结构进行改进,保证了所有sql解析都在内存进?#26657;?#26497;大?#26723;?#20102;系统资源消?#27169;?#22240;此我们决定全程使用sql硬解析,实现了真正基于成本的智能查询。

内存索引的成本评估精确到每个条件命中的条数,?#25490;?#32034;引的成本评估?#37096;?#20197;做到每个条件命中的叶子数据块数。

福彩25选5走势图