最近对数据库比较感兴趣,于是就去研究了下部分相关热门的数据库。

MySQL

关系型数据库。

在不同的引擎上有不同 的存储方式。

查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。

开源数据库的份额在不断增加,mysql的份额页在持续增长。

缺点就是在海量数据处理的时候效率会显著变慢。

Mongodb

非关系型数据库(nosql ),属于文档型数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性(self-describing),呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。

存储方式:虚拟内存+持久化。

查询语句:是独特的Mongodb的查询方式。

适合场景:事件的记录,内容管理或者博客平台等等。

架构特点:可以通过副本集,以及分片来实现高可用。

数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。

成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。

优势:

  • 快速!在适量级的内存的Mongodb的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快,

  • 高扩展!

  • 自身的Failover机制!

  • json的存储格式!

缺点:主要是无事物机制!


分析一下Mysql和Mongodb应用场景

  • 1.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量: (1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类) (2)从data models设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。 (3)mongodb本身的failover机制,无需使用如MHA之类的方式实现。

  • 2.将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。 考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候将mongodb做为辅助mysql而使用的类redis memcache 之类的缓存db来使用。 亦或是仅作日志收集分析。

最新文章

  1. svn sync主从同步学习
  2. ZTE and TP-Link RomPager - DoS Exploit
  3. 字典树(Trie树)
  4. Reading and Writing CSV Files in C#
  5. js模拟import方法导入外部文件
  6. ASP.NET MVC Razor HtmlHelper扩展和自定义控件
  7. linux下不重启添加硬盘
  8. mysql之创建外键报150错误的处理方法
  9. ios:Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
  10. android:allowbackup="true"
  11. full-background.js
  12. 怎样安装配置tomcat 8
  13. Flask入门之自定义过滤器(匹配器)
  14. Java基础练习4(内存管理)
  15. java-this和super的区别
  16. MFC Activex 开发、ocx打包成cab、部署、测试、自动升级
  17. 关于RPG游戏结构撰写的相关探索上篇
  18. 安卓开发 Activity入门
  19. Win7安装netbeans 找不到JDK
  20. php脚本cli 模式运行

热门文章

  1. x86-64整数寄存器
  2. python(56):正则表达式积累
  3. spark读取hdfs数据本地性异常【转】
  4. 【C/C++】嵌入式程序员应该知道的0X10个C语言问题
  5. 【Cmd】那些年,我们迷恋的cmd命令(一)
  6. Mac下更改Python pip的源
  7. 普通用户无法su到root用户
  8. ARKit从入门到精通(3)-ARKit自定义实现
  9. 大数据 -- Spark
  10. Mybatis 返回插入的主键