在一次面试中被问道了,其实之前也被问道过,但是一直没有重视这个问题,应该做个总结
关系型数据库
经常用的就mysql ,oracle ,还有 sqlServer ,Android用的SQLite,也有 一些公司用的PostgreSQL。
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
- 优点:
- 易于维护:都是使用表结构,格式一致
- 使用方便:使用SQL语言 CURD 可以做一些复杂操作
结构化数据的处理更合适,如学生成绩、地址等,这样的数据一般情况下需要使用结构化的查询,例如join,这样的情况下,关系型数据库就会比NoSQL数据库性能更优,而且精确度更高。由于结构化数据的规模不算太大,数据规模的增长通常也是可预期的,所以针对结构化数据使用关系型数据库更好。关系型数据库十分注意数据操作的事务性、一致性,如果对这方面的要求关系型数据库无疑可以很好的满足。
- 容易理解: 完美契合结构化数据,就是现实生活中的各种事物关系,比如学生信息,课程信息。
- 事务:安全性能很高的数据访问要求得以实现,数据的ACID有强一致性。
- 缺点
- 读写性能差:因为存储在磁盘上,所以数据量大读写很耗时。
- 表结构固定:不灵活,不能存储键值对,图片等等。
- 不利于拓展:表结构拓展麻烦,分表部署麻烦
非关系型数据库 NoSql
自己就用过redis,还知道mongoDB。
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
- 优点
- 灵活:支持很多种存储方式
- 速度快:存储在内存中
- 利于拓展
- 部署方便
- 缺点
- 不支持sql,学习成本高,不能关联查询
- 没有事务
- 基于内存,存储空间有限。
下面几个链接很好,解释的很全了。
链接🔗百度百科-数据库
链接🔗 常见的关系型数据库和非关系型数据及其区别
链接🔗Sql Or NoSql,看完这一篇你就懂了