关系数据库和NOSQL比较
2024-10-08 18:54:38
关系数据库 NOSQL
功能:
NOSQL
功能简单
基本只支持主键查询,有的NOSQL支持非主键查询(不过非主键查询时,其性能也很慢),很少有NOSQL支持二级索引
不支持关联查询,如果有复杂关联查询的需求,NOSQL无法支持
不支持ACID,仅仅支持单记录级的原子操作,如果有高一致性要求的场景,NOSQL很难支持
no schema 多条记录可以有不同数量的字段,存储方便
自身可以分片 扩容比较方便
关系数据库
功能复杂
支持主键查询和其他字段查询(建立二级索引)
支持关联查询
支持ACID
有schema约束
自身无分片功能
性能:
NOSQL
性能比较高
关系数据库
性能较低,因为其要保证事务一致性要做很多检查、加锁等操作,所以很慢,而且关联查询也很复杂,导致效率较低,经常有查询业务不走索引,查询速度也很慢,主要还是因为功能复杂导致的性能较低
总结
选择NOSQL需要下面2个必要条件:
1.不需要ACID
2.不需要关联查询
如果需要以上两个功能,无法选择NOSQL
下面是选择NOSQL的充分条件:
1表结构不固定 【因为关系数据库表结构是固定的,这个是NOSQL唯一比关系数据库好的能力点(笔者个人认知,因为NOSQL的高性能是牺牲一致性等功能为代价的)】
最新文章
- QML 从无到有 2 (移动适配)
- IT技术风向标
- 【转】iOS,搜索标签布局
- Failed to push selection: Read-only file system的解决方法
- SQL语句学习笔记
- Json2JsonArray JsonArray2StringArray
- QQ空间漫步者
- GridView分页排序
- install ruby and ruby gem
- sec:authorize 标签 通过不通过权限例子
- await, anync
- UITextField点击return后注销第一响应者
- Ghost win7 系统安装(虚拟机)
- All consistent reads within the same transaction read the snapshot established by the first read.
- WPF中的CheckBox的_ (underscore / 下划线)丢失
- C语言库函数大全及应用实例十三
- 关于空想X
- XLua----热更新
- 18.22 sprintf函数功能
- 多线程系列之二:Single Thread Execution 模式