MySQL概述:
关系型数据库。无论数据还是索引都存放在硬盘中。到要使用的时候才交换到内存中。能够处理远超过内存总量的数据。
在不同的引擎上有不同 的存储方式。
查询语句是使用传统的 SQL 语句,拥有较为成熟的体系,成熟度很高。
开源数据库的份额在不断增加,MySQL 的份额页在持续增长。
缺点:在海量数据处理的时候效率会显著变慢。
MySQL特点:
- 使用c和c++编写,并使用了多种编译器进行测试,保证源代码的可移植性
- 支持多种操作系统
- 为多种编程语言提供可API
- 支持多线程,充分利用CPU资源
优化的SQL查询算法,有效的提高查询速度
- 提供多语言支持,常见的编码如:GB2312、BIG5、UTF8
- 提供TCP/IP、ODBC和JDBC等多种数据库连接途径
提供用于管理、检查、优化数据库操作的管理工具
- 大型的数据库。可以处理拥有上千万条记录的大型数据库
8.支持多种存储引擎
- MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库
- MySQL使用标准的SQL数据语言形式
- Mysql是可以定制的,采用GPL协议,你可以修改源码来开发自己的MySQL系统
- 在线DDL更改功能
- 复制全局事务标识
- 复制无崩溃从机
15.复制多线程从机
MongoDB概述:
1 | 它是一个内存数据库,数据都是放在内存里面的。 |
缺点:占用的空间很大
MongoDB特点:
- 模式自由:可以把不同结构的文档存储在同一个数据库里
- 面向集合的存储:适合存储JSON风格文件的形式
- 完整的索引支持,对任何属性可索引
- 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移
- 自动分片:支持水平的数据库集群,可动态添加额外的机器
6.丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式额标记,可轻易查询文档中的内嵌的对象及数组
- 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划
8.高效的传统存储方式:支持二进制数据及大型对象
Redis:
它就是一个不折不扣的内存数据库。
持久化方式:Redis 所有数据都是放在内存中的,持久化是使用 RDB 方式或者 aof 方式。
Redis特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,在set,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份
- 性能极高- Redis能读的速度是110000次/s,写的速度是81000次/s
- 丰富的数据类型-Redis支持二进制案例的Strings,Lists,Hashes,Setes及Ordered Sets数据类型操作。
- 原子 - Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
- 丰富的特性 - Redis还支持publish/subscribe,通知,key过期等等特性。
数据量和性能的比较:
1 | 当物理内存够用的时候,Redis > MongoDB > MySQL |
使用场景的不同:
1 | 1、MongoDB适用于: |
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!