前文:
Nosql:Not only sql :不仅仅是sql(非关系型数据库)
正文:
相信很多小伙伴无论面试和工作中都遇到过Nosql,作者讲讲Nosql的时候顺便填一篇文章的坑。
讲解开始前,抛出问题:为什么要用nosql,传统关系型数据库(mysql,oracle为代表)真的不如nosql吗?其实这要追溯一下关系型数据库、非关系型数据库的演进(这段在面试中经常被问起)。
在90年代,web端更多的作用是为了展示数据,几乎没有交互。更多的使用html页面,服务器虽然落后,但是根本没有太大的压力。所以关系型数据库完全可以胜任。当互联网继续发展的时候,交互变多,页面更加绚丽,业务更加繁杂,单体关系型数据库变得稍有压力,但是还得不到瓶颈,此时programmer的解决策略是:加索引(B+,Hash)。慢慢的发展因为读写混合,前后端耦合,服务器扛不住了,这时的解决策略是:加机器,布集群,Memcached+垂直拆分(读写分离),分库分表,很好满足了08年之前人们的需求。
看似很完美的解决策略。但是在2010-2020这10年间,互联网高速发展,人们处于大数据时代(大数据的3高+3V),关系型数据库处理一些较大的文件、图片等效率就很低了,这时就触碰到了关系型数据库的瓶颈。此时Nosql应运而火(Nosql的概念最早起源于1998年),2009年开始极速发展。
Nosql的四大分类:
常用(简单举例,下文会详细解释):1.kv键值对(Redis)2.文档型(MongoDB)3.列存储(Hbase)4.图关系数据库(Neo4j)
真正的实践:在适当场景、关系型数据库+非关系型数据库一起使用才是最强的解决策略!
最后推荐一篇文章:阿里云的这群疯子 -王坚