Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30019
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-22 16:31
文章分类

全部博文(8)

文章存档

2013年(8)

我的朋友

分类: NOSQL

2013-08-31 18:27:46

由于项目的需要,用到NoSQL中的Mongo数据库,因为也是第一次真正意义上的使用该数据库,所以上网查阅了一些资料。对NoSQL有了一个新的认识,和大家分享。

1、 到底什么是NoSQL? 

NoSQL的是在1998年创造的,很多人认为是SQL的反义词,其实它的真实含义是 “Not Only SQL的“而不是“No SQL”。通俗来说,NoSQL是非关系性数据库,它是设计满足超大规模数据存储需求的分布式存储系统,没有固定的Schema,不支持join操作。传 统的关系数据库管理系统通过 “向上扩展”的方式通过更好的硬件设施来提升系统性能。 NoSQL则通过“向外扩展“的方式,这意味着应用更多的普通硬件提高系统负载能力。

2、 NoSQL的特点是什么?

NoSQL首先最大的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。 并且数据库的结构简单,在大数据量下,NoSQL数据库都具有非常高的读写性能。(这次的接口流量统计,大概每天60W的访问量,所以选择了 NoSQL)。其次,NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果 是非常大数据量的表,增加字段简直就是一个噩梦。

3、 NoSQL是不是会取代SQL数据库?

既然NoSQL这么多得好处,那是否会替代关系数据库呢?答案肯定是否定的。

4、 NoSQL适用的场景例子:

1)日志/存档:日志挖掘工具是很方便,因为他们可以跨越服务器访问日志,进行关联和分析。(这个对于任何系统来说,都是可以考虑来使用NoSql来完成,可以试着借鉴淘宝、谷歌一样基于MySQL上去使用)

2)外部数据集成:许多公司需要整合业务合作伙伴的数据。即使双方进行多次讨论和谈判,他们几乎还是无法控制企业拥有的数据格式。此外,还有很多情况下这些格式的变化非常频繁- 因为变动是业务合作伙伴的需求。 

3)订单处理系统:服务请求数量通过不同的渠道流向零售商,银行和保险机构,娱乐服务提供商,物流供应商是巨大的。这些请求要在世界任何地方被抓 获,同时保证终端用户的交易过程不受到任何影响和中断。(我们的平台的订单系统,也可以考虑是否可以使用NoSQL来解决相关的性能问题) 

4)实时统计分析系统:有时需要用一种工具来跟踪网站的实时性能指标(这次项目就是实时监控网站接口的调用情况,实时插入MongoDB数据库,又要尽量的减低对接口的性能影响)。

5、 总结

   NoSQL数据库的出现,弥补了关系数据(比如MySQL)在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。

MySQL和NoSQL都有各自的特点和使用的应用场景,两者的紧密结合将会给的数据库发展带来新的思路。最后不要刻意去选择用NoSQL或者MySQL,只有选择最合适的数据库,才是最终的王道。

阅读(2176) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~