关系数据库 NOSQL

功能:
       NOSQL
           功能简单
           基本只支持主键查询,有的NOSQL支持非主键查询(不过非主键查询时,其性能也很慢),很少有NOSQL支持二级索引
           不支持关联查询,如果有复杂关联查询的需求,NOSQL无法支持
           不支持ACID,仅仅支持单记录级的原子操作,如果有高一致性要求的场景,NOSQL很难支持
           no schema 多条记录可以有不同数量的字段,存储方便
           自身可以分片 扩容比较方便
       关系数据库
           功能复杂
           支持主键查询和其他字段查询(建立二级索引)
           支持关联查询
           支持ACID
           有schema约束
           自身无分片功能
性能:
       NOSQL
          性能比较高
       关系数据库
          性能较低,因为其要保证事务一致性要做很多检查、加锁等操作,所以很慢,而且关联查询也很复杂,导致效率较低,经常有查询业务不走索引,查询速度也很慢,主要还是因为功能复杂导致的性能较低

总结
选择NOSQL需要下面2个必要条件:
1.不需要ACID
2.不需要关联查询

如果需要以上两个功能,无法选择NOSQL

下面是选择NOSQL的充分条件:
1表结构不固定 【因为关系数据库表结构是固定的,这个是NOSQL唯一比关系数据库好的能力点(笔者个人认知,因为NOSQL的高性能是牺牲一致性等功能为代价的)】

最新文章

  1. QML 从无到有 2 (移动适配)
  2. IT技术风向标
  3. 【转】iOS,搜索标签布局
  4. Failed to push selection: Read-only file system的解决方法
  5. SQL语句学习笔记
  6. Json2JsonArray JsonArray2StringArray
  7. QQ空间漫步者
  8. GridView分页排序
  9. install ruby and ruby gem
  10. sec:authorize 标签 通过不通过权限例子
  11. await, anync
  12. UITextField点击return后注销第一响应者
  13. Ghost win7 系统安装(虚拟机)
  14. All consistent reads within the same transaction read the snapshot established by the first read.
  15. WPF中的CheckBox的_ (underscore / 下划线)丢失
  16. C语言库函数大全及应用实例十三
  17. 关于空想X
  18. XLua----热更新
  19. 18.22 sprintf函数功能
  20. 多线程系列之二:Single Thread Execution 模式

热门文章

  1. Elasticsearch 更新文档
  2. TRUNC()函数——oracle
  3. oracle将字符串根据特定字符串拆分为多个子字符串
  4. bash: java: command not found
  5. JS页面校验
  6. 201809-1 卖菜 Java
  7. react-native-tab-view 导航栏切换插件讲解
  8. 为什么 execute(`echo 中文`) 输出中文源码?
  9. 一名资深架构师规划Java程序员五年职业生涯指南
  10. JavaWeb之搭建自己的MVC框架(三)