5.mysql架构优化

前言

自己最近也在慢慢摸索原理性相关的知识点,现学之后就会简单的记录一下当做自己的笔记,如果有不对之处,还希望批评指正,本文档会不断更新。

场景

互联网项目上线之后,数据量日复一日的递增,现有的单体结构已经无法支撑日益膨胀的业务,这时候就需要对架构进行一些优化

方案

1.系统拆分

把原有的单体系统架构进行拆分,成为分布式系统,每一个系统连接一个数据库,减少数据库压力

2. 缓存

大多数并发场景都是读多写少,那么就可以根据业务利用redis缓存来减少数据库压力

3. 消息队列

常见的有MQ,kafka等。可以把大量需求放到队列里,由后面的系统依次进行消费,控制在mysql的承受范围之内

4. 分库分表

将原有复杂的数据库或者表,拆分成多个,将每个表的数据相对简单,提升sql性能

5. 读写分离

因为大部分时候数据库都是读多写少,所以没必要所有请求都集中在一个库上。可以实现一个主从架构,主库写,从库读,这样读流量太多的时候可以加更多的从库。(主库会把发生的一些dml(数据操纵语言,常见的新增、删除、修改)和ddl(数据定义语言,常见的结构的修改、新增)操作的变化发送给从库)

常见的主从结构有

  • 一主多从:可能存在单点故障问题
  • 双主复制:互为主从
  • 多级复制:层级结构,父-子-孙关系

你可能感兴趣的:(面试,mysql)