Mycat的常见面试题(全)

前言

主要讲解mycat框架的面试题
关于mycat的知识框架可看我之前的文章
Mycat框架从入门到精通(全)

1. 主从复制的原理

这里所运用到的主从复制主要还是mysql的

  1. master将数据的改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;当数据发生改变时,则将其改变写入二进制日志中;

  2. slave会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/OThread请求master二进制事件

  3. 同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至从节点本地的中继日志中,从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致,最后I/OThread和SQLThread将进入睡眠状态,等待下一次被唤醒。

更加详细的了解可看我之前的文章
还有和之前框架的主从复制进行对比
关于主从复制的超详细解析(全)

2. 分库分表是什么

垂直分库是指按照业务将表进行分类,分布到不同的数据库上面

具体原则:
分库,分到不同的主机上,各个主机的数据库不能联表
有紧密关联关系的表应该在一个库里,相互没有关联关系的表可以分到不同的库里

优点:
拆分后业务清晰,系统之间整合或扩展容易。

缺点:
部分业务表无法join,只能通过接口方式解决,提高了系统复杂度。

由于垂直切分是按照业务的分类将表分散到不同的库,所以有些业务表会过于庞大,存在单库读写与存储瓶颈,所以就需要水平拆分来做解决。


水平分表:
将数据的水平切分理解为是按照数据行的切分,是将表中的某些行切分到一个数据库,而另外的某些行又切分到其他的数据库中

优点:
不存在单库大数据,高并发的性能瓶颈。
提高了系统的稳定性跟负载能力。

缺点:
拆分规则难以抽象。分片事务一致性难以解决。
数据多次扩展难度跟维护量极大。
跨库join性能较差。

3. 全局表,ER表是什么

全局表:数据量少改动少,不需要拆分可当全局表。每个分片都会有一张相同的表,一个字典类数据的表,每个表都有可能用到的数据。在进行插入、更新、删除操作时,会将sql语句发送到所有分片上进行执行,在进行查询时,也会把sql发送到各个节点。这样避免了跨库JOIN操作,直接与本分片上的全局表进行聚合操作。

ER表:ER表将子表的存储位置依赖于主表,并且物理上紧邻存放,因此彻底 解决了 JOIN 的效率和性能问题。子表的记录与其关联的父表的记录保存在同一个分片上

补充全局表:
① 全局表的插入、更新操作会实时在所有节点上执行,保持各个分片的数据一致性
② 全局表的查询操作,只从一个节点获取
全局表可以跟任何一个表进行 JOIN 操作

字典表具有以下几个特性:
① 变动不频繁
② 数据量总体变化不大
③ 数据规模不大,很少有超过数十万条记录

4. 分片的规则有什么

有取模、分片枚举、范围约定、按日期分片

5. 全局ID有什么

在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此,Mycat 提供了全局 sequence

  • 本地文件
    优点:本地加载,读取速度较快
    缺点:抗风险能力差,Mycat 所在主机宕机后,无法读取本地文件

  • 数据库方式
    利用数据库一个表 来进行计数累加。但是并不是每次生成序列都读写数据库,这样效率太低。Mycat 会预加载一部分号段到 Mycat 的内存中,这样大部分读写序列都是在内存中完成的。如果内存中的号段用完了 Mycat 会再向数据库要一次

  • 时间戳方式
    全局序列ID= 64 位二进制 (42(毫秒)+5(机器 ID)+5(业务编码)+12(重复累加) 换算成十进制为 18 位数的
    long 类型,每毫秒可以并发 12 位二进制的累加。
    优点:配置简单
    缺点:18 位 ID 过长

6. mycat的核心配置文件有哪些

  • schem.xml 逻辑库,逻辑表,数据节点

  • rule.xml:分片规则

  • server.xml:连接mycat的用户名和密码

7. 高可用方案

在这里插入图片描述

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值