【MySQL】性能调优(六):业务层。减轻数据库压力

除了对于 SQL语句、表定义、架构、配置优化之外,业务层面的优化也不能忽视。举几个例子:

  1. 在某一年的双十一,为什么会做一个充值到余额宝和余额有奖金的活动(充300送50)?因为使用余额或者余额宝付款是记录本地或者内部数据库,而使用银行卡付款,需要调用接口,操作内部数据库肯定更快。
  2. 在去年的双十一,为什么在凌晨禁止查询今天之外的账单?这是一种降级措施,用来保证当前最核心的业务。
  3. 最近几年的双十一,为什么提前一个多星期就已经有双十一当天的价格了?预售分流。

在应用层面同样有很多其他的方案来优化,达到尽量减轻数据库的压力的目的,比如限流,或者引入MQ削峰,等等等等。

举个例子,在应用系统的并发数非常大的情况下,如果没有缓存,会造成两个问题:一方面是会给数据库带来很大的压力。另一方面,从应用的层面来说,操作数据的速度也会受到影响。我们可以用第三方的缓存服务来解决这个问题,例如 Redis。
在这里插入图片描述
为什么同样用 MySQL,有的公司可以扛住百万千万级别的并发,而有的公司几百个并发都扛不住,关键在于怎么用。所以,用数据库慢,不代表数据库本身慢,有的时候还要往上层去优化。

当然,如果关系型数据库解决不了的问题,我们可能需要用到搜索引擎或者大数据的方案了,并不是所有的数据都要放到关系型数据库存储。

猜你喜欢

转载自blog.csdn.net/weixin_43935927/article/details/114005283