[本文只是自己当前对此块知识的理解,可能理解有误,欢迎指正,不喜勿喷]
nosql
1、由来:
随着互联网时代的高速发展,传统模式、工具无法满足市场需求,即传统的关系型数据库在解决大规模数据集合并发需求的时候力不从心,短板日渐突出。
当大量用户访问服务的时候,最容易导致服务崩溃的地方是和磁盘数据交互的地方
cpu的数据交互是和高速缓存做(Cache);
cache的数据交互是和内存;
内存的数据的交互是和硬盘;
当服务和磁盘做数据操作的时候会产生大量的io交互,这样程序的高可用、高并发都会受到一定限制,所以就会有诞生一些理念:缓存、索引等,目的降低io成本的
2、概念:
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是非关系型数据的泛指,我的理解就是非关系型数据库的一个较为高大上的叫法
3、代表:
MongDB、 Redis、Memcache
Redis/Memcache: 键值数据库
MongDB:面向文档(日志、分析)
4、和关系型数据的区别:
关系数据库的设计上:
更注重三范式、设置主键、外键、以及联合主键,这样会使得数据的查询效率降低,数据关系呈现网状,目前有很多公司都数据库设计去除外键和联合主键,只保留主键,更多的操作都转移至代码里面处理,可以加快查询速度,但是这种操作还是对数据处理有限。
数据存储:线性存储。
非关系数据库:
数据存储:实质就是一个map,键值存储和文档存储。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。