Mysql怎么用NOSql给高并发系统加速

发布时间:2021-09-10 11:19:34 作者:chen
来源:亿速云 阅读:113

本篇内容主要讲解“Mysql怎么用NOSql给高并发系统加速”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql怎么用NOSql给高并发系统加速”吧!

NoSQL

NoSQL,泛指非关系型的数据库。现在大家更喜欢翻译成:not only sql

根据NoSQL的存储等特性,大体可以分为以下几类

由此可见,没有哪一种NoSql是完美的,每一种Nosql都有自己擅长的领域,这也是我们做系统架构中要考虑的重要因素。

场景1

电商的商品设计过程中,每种商品的属性都不同,属性数目不同,属性名不同,同一个商品有可能会属于多个分类,而且随着业务的发展,很多商品会增加新的属性,而且最令程序员头疼莫过于每种属性都有可能有搜索的可能性(当然搜索可以利用搜索引擎来实现)。遇到这样的需求场景,如果利用关系型数据库来存储的话,表的字段会非常多,而且字段的定义非常令人头疼。

这样的场景非常适合NOsql中的文档型数据库,比如MongoDB。文档型数据库新增字段非常简单,不像关系型数据库需要先执行DDL来增加字段,直接可以利用程序来进行读写,历史数据就算是没有相应的字段也不会有异常的情况发生。最重要的一点,文档型数据库很擅长存储复杂结构的数据,一般情况下业务上可以利用表现能力很强的json数据结构。

{
    "Id":1,
    "ProductName":"杜蕾斯加强版",
    "Price":100,
    "Type":[
        1,
        2,
        4
    ],
    "Length":20,
    "Height":2
}

如果所有商品信息都用mongodb来存储的话,有的场景并不是十分完美。比如商品被成功购买之后扣库存的问题,联合查询的问题,由于Nosql天生对ACID支持不足的原因,一个事务性的操作很难在Nosql中实现,所以设计系统的时候在很多情况下是关系数据库+Nosql 来共同实现业务。

场景2

很多具体的业务中都有记录数据然后进行统计的需求场景,比如那些统计uv,pv的系统。日志型的数据量非常大,而且还有可能有峰值的出现,如果用关系型数据库来存储,很有可能在IO上会出现瓶颈,而且有可能会影响其他正常的业务,更不幸的是当执行统计语句的时候,性能更是差强人意。这样的日志型统计业务很适合HBase这样的列式Nosql,业务上要统计一天的uv,pv数据,HBase很适合统计某一列数据的场景,因为只需要把对应的列进行统计即可,不像关系型数据库那样需要把所有行都加载进内存,而且列式存储一般比行式存储拥有更大的压缩比例,占用的磁盘空间会更少。

Mysql怎么用NOSql给高并发系统加速

列式存储的应用场景有一定的限制,一般用于统计和大数据的分析中。

场景3

在多数高并发系统中都存在缓存的设计,而缓存的一般数据结构都是K-V结构。缓存是一种提高系统性能的有效手段,因其需要提供快速访问的特性,一般缓存都放置于内存当中。比如现在我们要设计一个用户管理系统,每个用户信息可以做缓存以便提供高速的访问,由于很多系统都采用分布式的部署方式,所以采用进程内的缓存方式并不可取,这个时候就需要有一种高速的外部存储来提供这种业务,这正是kv型Nosql的典型应用场景之一。其中以redis为代表,具体的业务中可以以用户id为key,用户的信息为value存储在redis中,而且redis在3.0之后可以做集群了,在高可用和扩展上更能助力业务方。redis支持的数据类型很多,在不同的场景下选择不同的数据类型。

场景4

当一个系统有搜索的业务时候,如果搜索的条件是一些简单的类型搜索,关系型数据库还可以满足,但是如果有全文搜索,就是我们平时sql写的like ‘%xx%’这样的搜索,关系型数据库可能并不是最好的选择,全文搜索引擎类型的Nosql也许是一个更好的解决方案,其中以Elasticsearch 为代表。全文搜索引擎的搜索的条件可以随意排列组合,并且可以实现关系型数据库like方式的模糊匹配。

全文搜索引擎的技术原理称为“倒排索引”(inverted index),是一种索引方法,其基本原理是建立单词到文档的索引。与之相对是,是“正排索引”,其基本原理是建立文档到单词的索引。

场景5

在社交系统中最常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷,解决关系型数据库存储和处理复杂关系型数据功能较弱的问题。

到此,相信大家对“Mysql怎么用NOSql给高并发系统加速”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 【NoSQL】01、NoSQL基础
  2. 如何使用xcache-2.0给php加速

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql nosql

上一篇:jar包启动失败提示java Name or service not known的解决方法

下一篇:怎么通过重启路由的方法切换IP地址

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》