Mysql如何优化数据查询方案

  1. mysql做读写分离
    读写分离是提高mysql并发的首选方案。

在这里插入图片描述

  1. Mysql主从复制的原理
    mysql的主从复制依赖于binlog,也就是记录mysql上的所有变化并以二进制的形式保存在磁盘上,复制的过程就是将binlog中的数据从主库传输到从库上。
    主从复制过程详细分为3个阶段:
    在这里插入图片描述
    第一阶段:主库写binlog。提交数据,并更新本地数据。
    在这里插入图片描述

第二阶段:同步binlog。binlog复制到所有从库上。每个binlog写到暂存日志中。
在这里插入图片描述

第三阶段:回放binlog。并更新存储数据。
在这里插入图片描述
mysql默认是异步模式。mysql主库提交事务的线程并不会等待binlog同步到各从库,就返回客户端结果。这种模式一旦主库宕机。数据就会发生丢失。
在这里插入图片描述

Mysql主从复制还有哪些模型?
在这里插入图片描述
电商平台的商品评论的实际案例,设计一个主从复制的延迟方案
在这里插入图片描述

  1. 主从复制延迟导致的异常的处理方案:
    1)直接查询主库
    该方案在使用时要提前明确查询的数据量不大,不然会出现主库写请求锁行,影响读请求的执行,最终对主库造成比较大的压力。

2)使用数据冗余。
可以在异步调用审核模块时,不仅仅发送商品ID,而是发送审核模块需要的所有评论信息,借此避免在从库中重新查询数据,但你要注意每次调用的参数大小,过大的消息会占用网络带宽和通信时间。

3)使用缓存解决
可以在写入数据主库的同时,把评论数据写到redis缓存里,这样其他线程在获取评论信息时,会优先查询缓存,也可以保证数据的一致性。

  1. 当 MySQL做了主从分离后,以前只需要使用一个数据库地址操作数据库,现在却要使用一个主库地址和多个从库地址,并且还要区分写入操作和查询操作,那从工程代码上设计,怎么实现主库和从库的数据访问呢?

1)

相关推荐

  1. springboot Mongo大数据查询优化方案

    2024-02-20 21:44:01       21 阅读
  2. 数据查询深分页优化方案

    2024-02-20 21:44:01       10 阅读
  3. MySQL中的in+子查询应该如何优化

    2024-02-20 21:44:01       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 21:44:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 21:44:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 21:44:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 21:44:01       18 阅读

热门阅读

  1. element-plus_message.js

    2024-02-20 21:44:01       30 阅读
  2. docker安装milvus后,无法打开attu,日志报错

    2024-02-20 21:44:01       29 阅读
  3. 力扣题目-178. 分数排名

    2024-02-20 21:44:01       27 阅读
  4. 下一代Edge AI的应用初探

    2024-02-20 21:44:01       27 阅读
  5. scss配置主题

    2024-02-20 21:44:01       26 阅读