一、SQL VS NoSQL
SQL:关系型数据库,用SQL语句来操作数据
NOSQL:非关系型数据库,NoSQL的含义是不仅仅有SQL,而实际上大多数NoSQL不用SQL来操作数据
常见的关系型数据库:MySQL、Oracle、SQLServer、PostGreSQL
常见的非关系型数据库:HBase、MongoDB、Redies
关系型数据库的特点:
1.按照一定结构进行存储,如数据都存储在二维的表结构中,每一行数据具有相同的列属性
关系型数据库的改进:Json属性的列可以存储非结构化的数据
2.支持事务的原子性、一致性、隔离性、持久性
3.支持用SQL语言对存储在其中的数据进行操作
关系型数据库的使用场景:
1.数据之间存在着一定的关系,需要关联查询数据的场景
2.需要事务支持的业务场景
3.需要使用SQL语言灵活操作数据的场景
非关系型数据库的特点:
1.存储结构灵活,不需要固定的结构,如在MongoDB中每一行的数据以Json的形式存在,每一行的数据的列属性可以不同,但是这样的存储方式也有坏处,在不考虑压缩的情况下每一行都有自己的列属性,会占用许多存储空间,对于同样大小的数据非关系型数据库耗费的存储空间更多。
2.对事务的支持比较弱,查询或写入数据时,不需要检查数据的结构完整性,节约了很多时间,因此对数据的并发处理性能高。
3.大多数不用SQL语言来操作,如MongoDB采用js来操作数据
非关系型数据库的适用场