为什么NoSql阅读总结

参考博文

阅读总结

  • 易扩展:安装简单
  • 大数据量,高性能:大量数据对关系数据库产生的高IO和密集CPU计算,细粒度的cached
  • 灵活性强:简化了关系数据库的关系维护;(例如:关系数据库中的个中约束,范式,冗余)
  • 高可用:分布式集群

其他阅读总结

  • 为了帮助RDBMS扩展,你可以对表做逆向规范化处理,去掉约束,放宽事务保障,经过这些修改,RDBMS其实就是更类似一个NoSql产品。(把常用是数据结构存储在nosql中,这些数据在RDBMS,中可能需要join)

  • 什么是大数据,目前来说几TB就算,如果电脑的硬盘只有1TB的时候,那么这台电脑的数据库系统必定需要添加硬盘,或者使用其他电脑上的硬盘;如使用其他电脑上的硬盘,这算不算分布式存储呢?

  • 如果把所有的数据存储在一个磁盘上,磁盘的访问速度会随着储存容量的增加而变慢,那么提高效率的方法就是把数据分散的存储到多个存储单元(磁盘)上,而不是集中在单一的大型存储中

  • 性能扩展,两种方案:超级计算机(多核高功率CPU,超级存储)和 普通机器集群, 即垂直扩展和水平扩展

  • MapReduce:

    ①.map 操做是对一些,一类,一堆大数据进行统一处理(分类)
    ②.Reduce 操作是对这些处理过的数据,得到一个结论(聚合)

  • Nosql产品分类:面向列的有序存储,键/值存储, 文档数据库,图形数据库

  • 面向列的有序存储:列和列族的区别。因为有序,按行键查询速率高。(bigtable,Hbase,Hadoop)

  • 键/值存储:键索引,查询速度快(memcached,ehcache,redis)

  • 文档数据库: 文档索引,不仅包括主标示符,还包括文档属性(MongoDB和CouchDB)

  • 图形数据库(和xml数据存储):

###个人思考

其实在使用NoSql技术的主要目的是提高服务器的数据处理性能;通俗的说,就是单位时间内处理数据的速度要快;那怎么样才能够提高单位时间内处理数据的速度快呢;有两个方面,是CPU计算时间短和数据传输快;

想要CPU计算快,就需要抛弃传统数据库中的各种约束的计算,还有是最直接的拿到数据,而不是我们平时从数据库中拿数据时候的各种select加Join表,创建虚拟表(这些操作都会增加CPU的处理时间);所以我们抛弃这些所有,就可以直接使用类似MongoDB这些NoSql产品;

那想要怎么样才能提高数据传输速度呢?答案是把数据放到内存;大家都是知道内存的速度比硬盘的读写速度要快,所以把一些不需要经常变的常用的数据,放到内存里面,这样不仅是可以提高读写速度;还有一点是内存离CPU近(逻辑上);所以也能够减少速度的传递时间;所以我们可以使用类似Memcache的Nosql产品;

基于以上的种种,去约束,去join,数据驻留内存等一些列的操作,就会出现大量的数据冗余;但是好处就是对于整台服务器或者服务集群来言,它的处理速度会成倍的提升;这应该就是空间换时间的理论实现吧;

相关文章

文章浏览阅读752次。关系型数据库关系型数据库是一个结构化的...
文章浏览阅读687次,点赞2次,收藏5次。商城系统中,抢购和秒...
文章浏览阅读1.4k次。MongoTemplate开发spring-data-mongodb...
文章浏览阅读887次,点赞10次,收藏19次。1.背景介绍1. 背景...
文章浏览阅读819次。MongoDB连接失败记录_edentialmechanisn...
文章浏览阅读470次。mongodb抽取数据到ES,使用ELK内部插件无...