图数据库、mysql和kv数据库有什么不同?
一、图数据库、mysql和kv数据库有什么不同
区别还是很大的,最根本的区别还是底层存储结构上的区别。
图数据库应该就是使用图作为底层存储结构。在结构上关系上应该是更强大的。
mysql之类的关系数据库以表(直观上的行列)作为操作对象,底层结构索引都是用来保证对表的快速操作的,上层接口上是线性的。
kv数据库严格来说不是数据库,只是一种存储的结构,只是v部分可以存储多种数据,本质的查询部分还是key,这部分一般只是一种结构(哈希/BST)。名列前茅层key是查询接口,第二层的v是结构相关的。它的真正的高效检索部分是名列前茅部分。可以等同于只有多列的表,但列与列之间没有行约束关系。
另外,虽然图数据库理论上结构上有优势但实际上应该说还是关系数据更有操作上的优势,这主要从信息角度不管是哪种数据库都不能解决复杂的数据查询问题。图结构和表结构没有本质区别,但操作对象上表达形式上要复杂的,表结构具有操作上的直观优势,更易于理解和使用。比对kv结构,kv的优势是结构是松散的更少的约束性,修改更方便。
kv数据库封装成数据库是不太可能的,这是因为基础结构本质的不同。相比关系型数据库它还少了相当多的结构和特征。
延伸阅读:
二、图数据库优点有什么
使用图(或者网)的方式来表达现实世界的关系很直接、自然,易于建模。比如某人喜欢看某电影,就可以建立一条边连接这个人和这部电影,这条边就叫做“喜欢”边,同时这个人还可以有其它边,比如“朋友”边、“同学”边等,同样这个电影也可以有其它边,比如“导演”边、“主演”边等,这样就构建了自然的关系网。图数据库可以很高效的插入大量数据。图数据库面向的应用领域数据量可能都比较大,比如知识图谱、社交关系、风控关系等,总数据量级别一般在亿或十亿以上,有的甚至达到百亿边。mysql不做分表分库的情况下插入百万数据基本就慢到不行,图数据库基本能胜任亿级以上的数据,比如neo4j、titan(janus)、hugegraph等图数据库,持续插入十亿级的数据基本还能保持在一个较高的速度。图数据库可以很高效的查询关联数据。传统关系型数据库不擅长做关联查询,特别是多层关联(比如查我的好友的好友有哪些人),因为一般来说都需要做表连接,表连接是一个很昂贵的操作,涉及到大量的IO操作及内存消耗。图数据库对关联查询一般都进行针对性的优化,比如存储模型上、数据结构、查询算法等,防止局部数据的查询引发全部数据的读取。猜你喜欢LIKE
相关推荐HOT
更多>>如果有子查询SQL语句的执行顺序是怎么样的?
一、如果有子查询SQL语句的执行顺序是怎么样的1、子查询作为WHERE子句的一部分子查询作为WHERE子句的一部分时,首先会执行子查询,得到结果集后...详情>>
2023-10-20 23:42:56SQL Server 2014的集成内存OLTP(Hekaton)有什么战略意义?
一、SQL Server 2014的集成内存OLTP(Hekaton)有什么战略意义1、SQL Server本来就是in memory的,任何数据库都会用大量内存去cache磁盘数据,所...详情>>
2023-10-20 18:27:43Python编程中,如何使用多进程完成多任务进程有哪些注意点?
一、Python编程中,使用多进程完成多任务的方法Python提供了multiprocessing模块,可以用于在单个计算机上创建多个进程,从而实现多任务处理。...详情>>
2023-10-20 12:27:56一次简单的redis网络请求会有哪些CPU开销?
一、网络连接开销Redis是一个基于客户端-服务端模型的网络应用程序,通过TCP/IP协议进行通信。因此,建立和维护与Redis服务器之间的网络连接会...详情>>
2023-10-20 10:12:38热门推荐
如果有子查询SQL语句的执行顺序是怎么样的?
沸制作大型软件一般选用什么类型的数据库以保护数据安全?
热sql server2000导出CSV文件用EXCEL数据格式出错怎么处理?
热oracle user_segments表的segment_name字段以BIN$开头的是什么?
新MySQL日均10万数据永久保存实现高可用可以采用什么方案?
如何将ABAP时间戳转换为JAVA时间戳,原理是什么?
Django项目中如何配置MySQL数据库?
在mysql中既然where和having都能过滤,为什么用where的多?
CSS3有哪些特性?
SQL Server 2014的集成内存OLTP(Hekaton)有什么战略意义?
用access做一个数据库,用户登录界面,不同用户权限不同,应该怎么设置?
什么是Caché数据库?
flash手机广告动画制作公司使用哪些软件?
文件过多时ls命令为什么会卡住?