首页 > 社交 > 科普中国

面渣逆袭:MySQL六十六问,两万字+五十图详解!有点六

常驻编辑 科普中国 2022-06-22 字段   路由   详解   索引   事务   版本   操作   数据库   引擎   数据   日志
70s拜客生活常识网

  1. 程序代码封装

程序代码封装指在代码中抽象一个数据访问层(所以有的文章也称这种方式为 "中间层封装" ) ,实现读写操作分离和数据库服务器连接的管理。例如,基于 Hibernate 进行简单封装,就可以实现读写分离:70s拜客生活常识网

70s拜客生活常识网

业务代码封装70s拜客生活常识网

目前开源的实现方案中,淘宝的 TDDL (Taobao Distributed Data Layer, 外号:头都大了)是比较有名的。70s拜客生活常识网

  1. 中间件封装

中间件封装指的是独立一套系统出来,实现读写操作分离和数据库服务器连接的管理。中间件对业务服务器提供 SQL 兼容的协议,业务服务器无须自己进行读写分离。70s拜客生活常识网

对于业务服务器来说,访问中间件和访问数据库没有区别,事实上在业务服务器看来,中间件就是一个数据库服务器。70s拜客生活常识网

其基本架构是:70s拜客生活常识网

70s拜客生活常识网

数据库中间件70s拜客生活常识网

56.主从复制原理了解吗?

  • master数据写入,更新binlog
  • master创建一个dump线程向slave推送binlog
  • slave连接到master的时候,会创建一个IO线程接收binlog,并记录到relay log中继日志中
  • slave再开启一个sql线程读取relay log事件并在slave执行,完成同步
  • slave记录自己的binglog

70s拜客生活常识网

主从复制70s拜客生活常识网

57.主从同步延迟怎么处理?

主从同步延迟的原因70s拜客生活常识网

一个服务器开放N个链接给客户端来连接的,这样有会有大并发的更新操作, 但是从服务器的里面读取 binlog 的线程仅有一个,当某个 SQL 在从服务器上执行的时间稍长 或者由于某个 SQL 要进行锁表就会导致,主服务器的 SQL 大量积压,未被同步到从服务器里。这就导致了主从不一致, 也就是主从延迟。70s拜客生活常识网

主从同步延迟的解决办法70s拜客生活常识网

解决主从复制延迟有几种常见的方法:70s拜客生活常识网

  1. 写操作后的读操作指定发给数据库主服务器

例如,注册账号完成后,登录时读取账号的读操作也发给数据库主服务器。这种方式和业务强绑定,对业务的侵入和影响较大,如果哪个新来的程序员不知道这样写代码,就会导致一个bug。70s拜客生活常识网

  1. 读从机失败后再读一次主机

相关阅读:

  • 字段类型有哪些(字段长度怎么设置)
  • 技术人必备的接口测试神器:apifox、apipost、yapi,实用
  • 我做开发测试犯的错
  • 基于SpringBoot微服务开发中的异常处理最佳实践
  • MySQL专题1:
  • 你今天玩游戏了吗?游戏道具了解下
  • 什么是CSRF
  • 最全SQL
  • 云原生(十四)
  • MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。