因为之前一直使用的是mysql,大学学过access,但是并没有对这些做过直观的比较,这里简单记录一下各个数据库的区别(知识水平有限,如有错误,请大家指正)。
关系型数据库
- mysql
描述:从开始开发网站,就一直使用的是mysql,所以对mysql了解的更多一点,在使用中发现mysql在开发中小型项目时,效率很高,而且能完全满足需求。
优点:
1. 开源免费
2. 轻量级,方便部署和备份恢复
3. 简单易学,方便开发
4. 几乎在主流的平台上都能运行
缺点:
1. 性能缓慢(相对)
2. 并发能力不强(最大连接数100) - oracle
优点:
1. 开发性好,几乎适合全平台(有的文章写全平台匹配,这个我没验证过)
2. 安全性,获得最高认证级别的ISO标准认证
3. 性能高
缺点:
1. 价格昂贵
2. 维护成功高
3. 学习复杂,开发成本比较高 - access
优点:
1. 界面友好,便于操作
2. 维护简单
3. 支持广泛,易于拓展
缺点:
1. 数据量大时性能会很低(超过100M数据)
2. 并发编辑性能差
3. 安装麻烦,不能编译成安装包,必须安装access运行环境运营 - sql server
优点:
1. 学习简单
缺点:
1. 开发性差,只适合在windows上运行
2. 风险大,没有任何安全证书
非关系型数据库
- redis
优点:
1. 数据结构多样化
2. 支持数据持久化,不用担心数据丢失
3. 单线程请求,不用担心数据一致性
缺点:
1. 内存消耗大(string类型)
2. 数据关系性能差,尤其是对字符串数据进行检索时
3. 单进程,性能受CPU限制 - mongo
优点:
1. 支持丰富的数据表达,索引
2. 适合大数据存储
3. 支持数据持久化
4. 内置数据分析功能
缺点:
1. 不支持事务,数据一致性差 - memcache
优点:
1. 吞吐量大,速度快
缺点:
1. 数据结构单一
2. 保存在内存中,一旦机器关机,数据丢失