1.NoSQL NoSQL = Not only SQL ,意思:不仅仅是 SQL 泛指非关系型的数据库,随着互联网 Web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别 是超大规模和高并发的社交网络服务类型的Web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服 的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展,NoSQL 数据库的产生就是为 了解决大规模数据集合多种数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。 (例如谷歌或 Facebook 每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模 式,无需多余操作就可以横向扩展。 2.NoSQL的特点 1、易扩展 NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。 数据之间无关系,这样就非常容易扩展,也无形之间,在架构的层面上带来了可扩展的能力。 2、大数据量高性能 NoSQL 数据库都具有非常高的读写性能,尤其是在大数据量下,同样表现优秀。这得益于它的非关系 性,数据库的结构简单。 一般 MySQL 使用 Query Cache ,每次表的更新 Cache 就失效,是一种大力度的 Cache ,在针对 Web2.0 的 交互频繁应用,Cache 性能不高,而 NoSQL 的 Cache 是记录级的,是一种细粒度的 Cache ,所以 NoSQL 在这个层面上来说就要性能高很多了。 官方记录: Redis 一秒可以写 8 万次,读 11 万次! 3、多样灵活的数据模型 NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式,而在关系数据库里,增删 字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是噩梦。 3.1、演变过程:以下图片资料来源:阿里巴巴中文站架构设计实践
笔者认为 阿里是最具有互联网技术的公司之一,因为现有的技术很大程度上都是由阿里二次开发。
4.1 痛点:大型互联网应用(大数据,高并发,多样数据类型)的难点和解决方案 难点: 数据类型的多样性 数据源多样性和变化重构 数据源改造而数据服务平台不需要大面积重构 解决方法