阅读总结
- 易扩展:安装简单
- 大数据量,高性能:大量数据对
关系数据库
产生的高IO和密集cpu计算,细粒度的cached - 灵活性强:简化了关系数据库的关系维护;(例如:关系数据库中的个中约束,范式,冗余)
- 高可用:分布式集群
其他阅读总结
-
为了帮助RDBMS扩展,你可以对表做逆向规范化处理,去掉约束,放宽事务保障,经过这些修改,RDBMS其实就是更类似一个Nosql产品。(把常用是数据结构存储在nosql中,这些数据在RDBMS,中可能需要join)
-
什么是大数据,目前来说几TB就算,如果电脑的硬盘只有1TB的时候,那么这台电脑的数据库系统必定需要添加硬盘,或者使用其他电脑上的硬盘;如使用其他电脑上的硬盘,这算不算分布式存储呢?
-
如果把所有的数据存储在一个磁盘上,磁盘的访问速度会随着储存容量的增加而变慢,那么提高效率的方法就是把数据分散的存储到多个存储单元(磁盘)上,而不是集中在单一的大型存储中
-
MapReduce:
①.map 操做是对一些,一类,一堆大数据进行统一处理(分类)
②.Reduce 操作是对这些处理过的数据,得到一个结论(聚合) -
面向列的有序存储:列和列族的区别。因为有序,按行键查询速率高。(bigtable,Hbase,Hadoop)
-
键/值存储:键索引,查询速度快(memcached,ehcache,redis)
-
图形数据库(和xml数据存储):
###个人思考
其实在使用Nosql技术的主要目的是提高服务器的数据处理性能
;通俗的说,就是单位时间内处理数据的速度要快;那怎么样才能够提高单位时间内处理数据的速度快呢;有两个方面,是cpu计算时间短和数据传输快;
想要cpu计算快,就需要抛弃传统数据库中的各种约束的计算,还有是最直接
的拿到数据,而不是我们平时从数据库中拿数据时候的各种select加Join表,创建虚拟表(这些操作都会增加cpu的处理时间);所以我们抛弃这些所有,就可以直接使用类似MongoDB这些Nosql产品;
那想要怎么样才能提高数据传输速度呢?答案是把数据放到内存;大家都是知道内存的速度比硬盘的读写速度要快,所以把一些不需要经常变的常用的数据,放到内存里面,这样不仅是可以提高读写速度;还有一点是内存离cpu近(逻辑上);所以也能够减少速度的传递时间;所以我们可以使用类似Memcache的Nosql产品;
基于以上的种种,去约束,去join,数据驻留内存等一些列的操作,就会出现大量的数据冗余;但是好处就是对于整台服务器或者服务集群来言,它的处理速度会成倍的提升;这应该就是空间换时间的理论实现吧;