首页 > 数据库 >Java面试题--数据库集群

Java面试题--数据库集群

时间:2024-08-11 19:28:07浏览次数:15  
标签:主库 binlog 面试题 分库 Java -- 查询 分表 从库

Mysql主从解决什么问题,不能解决什么问题?

MySQL主从同步,主负责写,从负责读,使用一主多从,能减轻读的压力

但是这不能解决写的压力和主库的单点故障,如果主库的写并发高,可以做成多个主库

MySql主从复制原理?

主要依靠binlog来实现的,它记录的是所有的DDL,DML,TCL操作

当主库的数据发生改变时,会将改变记录保存到binlog中

从库新开一个线程将binlog内容发送到从库

从库会发起一个I/O线程请求主库的binlog,并保存到中继日志中

从库新开一个SQL线程,读取中继日志并解析成具体操作,从而将主库更新的内容写到了从库中

MySql主从配置步骤?

安装mySQL主从客户端,并配置my.ini

主库需要配置授权从库使用的账号和权限,启动后可以通过show 主库名 status查看状态,我们需要记录File和Position的值,File是对应的binlog文件名,position是当前同步数据的最新行

从库需要配置主库链接信息,包括账号密码和binlog文件名和最新行,然后启动。通过show 从库名 status 检查同步状态,Slave_IO_Running 和 Slave_SQL_Running 的值都为YES,说明大功告成了

什么是垂直分表,垂直分库,水平分表,水平分库

垂直分表,可以理解为按列分表,如果一个表的字段太多了,可以按照使用频率分成不同的表,优化查询性能。比如商品表可以分为商品类型表,商品详情表,商品促销表等等

垂直分库,为了减轻单个数据库压力,我们可以按照业务类型,拆分成多个数据库,比如分布式架构,不同的模块可以有不同的数据库

水平分表,可以理解为按行分表,如果一个表的数据有千万行,查询性能太低,可以拆分成10张小表,每张表保存一百万行数据

水平分库,我们做了水平分表后,表数量太多了也会影响数据库查询效率,我们可以将这些表分到多个数据库中

分库分表后会出现哪些问题?怎么解决

会产生分布式事务,以前本地事务就能结局的问题现在要用上Seata分布式事务

垂直分库后跨库查询会导致一个查询结果来源于两个库,可能要用到多线程调用多个库查询

水平分库后一个分页查询的某一页可能来自两个库,可以将两个库的数据合并之后再执行SQL

水平分表后不同的表出现主键重复,可以通过雪花算法来解决

两个库都用到同一个表,那这个公共表的维护可能要用到MySQL主从同步

标签:主库,binlog,面试题,分库,Java,--,查询,分表,从库
From: https://blog.csdn.net/qq_56438516/article/details/141110097

相关文章

  • 一步一步微调小模型
    本文记录一下,使用自顶向下的编程法一步步编写微调小语言模型的代码。微调一个语言模型,本质上是把一个已经预训练过的语言模型在一个新的数据集上继续训练。那么一次微调模型的任务,可以分为下面三个大个步骤(不包含evaluation):加载已经预训练好的模型和新的数据集预处理模型和......
  • Java常见设计模式简介
    设计模式什么是单例,如何实现一个类只能有一个实例,主要用于需要频繁使用的对象避免频繁初始化和销毁来提高性能,或者资源需要相互通信的环境主要实现方式有,饿汉模式,懒汉模式,枚举,静态内部类饿汉模式,是在类加载过程中就将这个单例对象实例化,需要将构造方法私有化,定义一个成员变......
  • YOLOv3:多尺度检测的巅峰之作
    目录前言3.1简介3.2网络结构3.3改进之处3.4性能表现前言   自从2016年JosephRedmon等人首次提出YOLO(YouOnlyLookOnce)这一实时目标检测框架以来,YOLO系列算法就以其高效性和准确性成为了计算机视觉领域的明星。YOLO系列的核心思想是在单一网络中完成目......
  • ElasticSearch中的DSL查询与DSL过滤
    DSL查询定义对于简单查询,使用查询字符串比较好,但是对于复杂查询,由于条件多,逻辑嵌套复杂,查询字符串不易组织与表达,且容易出错,因此推荐复杂查询通过DSL使用JSON内容格式的请求体代替。DSL查询是由ES提供丰富且灵活的查询语言叫做DSL查询(QueryDSL),它允许你构建更加复杂、强......
  • Windows平台Hyper-V下使用iKuai作为主路由实现网口桥接
    Windows平台Hyper-V下使用iKuai作为主路由实现网口桥接问题背景在使用iKuai作为主路由时,可能会遇到后添加的虚拟端口下的设备无法联网的问题,这可能是iKuai的一个bug。解决方案以下是解决Windows平台Hyper-V下iKuai主路由网口桥接问题的步骤:确定主要网卡:观察并确定网桥使用的......
  • Docker②_安装部署Anylink_VPN
    目录1.Anylink项目介绍2.Docker安装部署Anylink2.1安装Docker环境2.2 pull镜像2.3创建密码2.4修改自己的配置文件2.5 启动Anylink2.6Linux虚拟机开放端口2.6交换机防火墙对外开放ssl端口2.7 检查状态1.Anylink项目介绍        AnyLink是Tmax......
  • 合成复用原则(CRP)
    目录一、概念1.合成2.复用二、合成复用原则的优点1.降低耦合度2.提高灵活性3.避免继承的复杂性三、示例合成复用原则(CompositeReusePrinciple,CRP)是面向对象设计中的一个重要指导原则,强调通过组合(而不是继承)来实现代码复用。它鼓励开发者利用对象的组合......