什么是非关系型数据库,有哪些特点和应用?

NoSQL就是不用SQL的数据库。
说白了,就是为大数据准备的。

存储方式分四种。
键值对最快,列存储扩展强,文档灵活,图形适合关系计算。

MongoDB适合实时读写,HBase适合大数据量,Redis内存快但容量有限。

关系型是竖着加内存,NoSQL是横着加服务器。
关系型的事务稳,NoSQL的事务一般。

怎么选?看你场景。
数据量暴增就选NoSQL。

NoSQL究竟是哪里比SQL强?

记得有一次,我帮一个做电商的朋友优化他们的商品搜索系统。
他们之前用的是传统的SQL数据库,但是每当用户搜索商品时,系统总是慢吞吞的,用户体验极差。
我建议他们试试ElasticSearch,这是一个搜索引擎数据库,特别擅长全文搜索。

我花了两天时间,将他们的商品数据迁移到了ElasticSearch中,然后神奇的事情发生了。
同样的搜索请求,ElasticSearch的响应时间从之前的几秒钟缩短到了几百毫秒。
用户反馈说搜索变得飞快,商品信息一目了然。

这个小小的例子让我深刻体会到,NoSQL数据库在处理大规模文本搜索时的强大能力。
ElasticSearch通过倒排索引优化,能够快速匹配关键词,返回结果,这在传统的SQL数据库中是难以想象的。
等等,我突然想到,如果结合使用ElasticSearch和Redis,在缓存热门搜索结果的同时,还能保持搜索的实时性和准确性,那岂不是更完美了?

NoSQL究竟是哪里比SQL强?

上周看了一篇关于NoSQL的文章。
挺有意思的。

大数据场景下读取IO效率:确实。
传统数据库会慢很多。

数据结构灵活性:这个没毛病。
NoSQL随便加字段。

表结构扩展性:NoSQL在这方面强。
业务变化快的时候很方便。

全文搜索功能:ElasticSearch确实厉害。
查起来快。

复杂关系型数据处理效率:Redis在这方面表现不错。
操作简单。

这部分我不确定。
可能还有其他因素吧。
算了。