1)关系型和非关系型数据库的区别?
关系型数据库:是指采用了关系模型来组织数据的数据库。可以理解成二维的excel表格,是一一对应关系。常见的关系型数据库有:MySQL、Oracle、DB2、Microsoft SQL Server、Microsoft Access等;
非关系型数据库:是指采用了没有特定关系模型来组织数据的数据库。可以理解成一对多的数据关系,比如MongoDB;
不同的数据类型各有优缺点:
关系型数据库的优势:
1.可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据库查询;
2.数据更新的开销;
3.☆☆通过事务处理保持数据的一致性;
4.时间长,技术成熟,对于安全性能很高的数据访问要求得以实现。
缺点:
1.数据读写必须经过sql解析,大量数据、高并发下读写性能不足;
2.为了保证数据的一致性,需要加锁处理,影响并发操作;
3.无法适应非结构化的存储,扩展困难;
4.大量数据集中到一台服务区处理时,服务器的负载大;
5.“阻抗失谐”,即数据库中存储的对象与实际的对象实体有一定的差别。
非关系型数据库的优势:
1.数据之间基于键值对存储,数据之间没有耦合性,便于水平扩展;
2.没有多表连接查询机制的限制,扩展性高;不需要经过SQL层的解析,性能非常高;
3.处理高并发、大批量数据的能力强;支持分布式集群,负载均衡,性能高;
4.数据存储于缓存之中,查询速度快;
5.解决了“阻抗失谐”问题;存储格式多,初键值对格式外,还可存储文档、图片等格式;
缺点:
1.技术起步晚,维护工具以及相关资料有限;
2.不支持现有的sql工业标准;
3.没有复杂的连接操作;没有完整性约束,对于复杂业务场景支持较差;
4.事务处理能力弱。
- 技术起步晚,维护工具以及技术资料有限
- 不支持sql工业标准
- 没有join等复杂的连接操作
- 事务处理能力弱
- 没有完整性约束,对于复杂业务场景支持较差
- 技术起步晚,维护工具以及技术资料有限
- 不支持sql工业标准
- 没有join等复杂的连接操作
- 事务处理能力弱
- 没有完整性约束,对于复杂业务场景支持较差