关系型和非关系型数据库的区别
常见的数据库:关系型数据库:MySQL、SQL Server、Oracle;(具有丰富的查询语言、二级索引、强事务、企业级工具集成和完备的生态系统)非关系型数据库:MongoDB、Redis、Memcache(弹性结构、水平扩展、集群化部署)1 存储方式不同关系型数据库:表格存储,容易关联协作存储,提取数据方便;非关系型数据库:数据存储集中,像文档、...
常见的数据库:
关系型数据库:MySQL、SQL Server、Oracle;
(具有丰富的查询语言、二级索引、强事务、企业级工具集成和完备的生态系统)
非关系型数据库:MongoDB、Redis、Memcache
(弹性结构、水平扩展、集群化部署)
1 存储方式不同
关系型数据库:表格存储,容易关联协作存储,提取数据方便;
非关系型数据库:数据存储集中,像文档、键值或图结构。
2 存储结构不同
关系型数据库:结构化数据,结构固定,虽然稳定,但修改较困难;
非关系型数据库:非结构化数据,动态结构。
3 存储规范不同
关系型数据库:为了更高的规范性,把数据分割成最小关系表存储,节省了空间,但单个操作涉及多个表时,数据管理较为麻烦;
非关系型数据库:数据可能有较多重复,单个数据库很少被分隔开。
4 存储扩展不同
关系型数据库:纵向扩展,要提高处理只能使用更快的处理器,扩展空间较大,但最终有纵向扩展的上限;
非关系型数据库:横向扩展,为分布式存储方式,可以通过给资源池添加更多的普通数据库服务来分担负载。
5 查询方式不同
关系型数据库:使用结构化查询语句SQL;
非关系型数据库:使用UnQL,无标准。
(关系型数据库中的主键对应非关系型数据库中的文档ID)
6 事务不同
关系型数据库:ACID(原子性A、一致性C、隔离性I、持久性D)
非关系型数据库:BASE(基本可用BA,软/柔性事务S、最终一致性E)。
7 性能不同
关系型数据库:为维护数据数据一致性付出了较大代价,面向高并发读写能力较差;
非关系型数据库:为key-value形式,并存储在内存中,一存储,noSQL无需sql解析,提高了读写性能。
一般MySQL存储业务数据,因为数据关系复杂,而redis时键值形式,及时读取效率高也没办法用,但对关联少且高频读写的,使用redis能提高并发。
如查询某个用户的订单(至少要用用户表和订单表数据)
对于关联数据一般采用MySQL,而商品库存信息,只有单张表,但读取非常频繁,可以存储到redis中,下单直接在redis中剪掉库存,这样订单的并发能力能够提高。
redis和memcache
在复杂数据结构(value值为哈希、列表、集合、有序集合等复杂数据结构)、数据需要持久化的情况下选择redis数据库。
如有侵权,联系立删
更多推荐
所有评论(0)