首页 > 数据库 >数据库面试题--Mycat

数据库面试题--Mycat

时间:2022-12-02 15:23:27浏览次数:73  
标签:面试题 dm -- mycat 切分 分片 Mycat ID

Mycat

1.Mycat是什么?

Mycat是基于MySQL的数据库中间件,目的是为了降低数据库的压力。

2.什么叫混合切分

项目组中如果有水平切分,那项目组里的开发方式就叫混合切分。或者项目组里就是单纯的垂直切分。

3.在项目组中,切分后的库从哪里而来?

在开发中是基于原有库创建出来,并且原有库和切分后的库是数据表的设计是保持一致的。dm_order1,dm_order2,dm_order3这些库是需要和dm_order的设计保持一致的!!!!

附注:所以,切分后的库例如dm_order1,dm_order2,dm_order3这些都是有数据库维护团队创建出来的。

4.搭建mycat的核心配置文件有哪些?

schem.xml 配置参数:逻辑库,逻辑表,数据节点。节点主机

rule.xml:分片规则

server.xml:连接mycat的用户信息(账号和密码)

这里是使用中间件做数据切分,感兴趣的小伙伴还可以了解一下mysql的分库分表高可用方案

5.mycat分库可以分成100个库吗?

我们目前项目组分的是3个库,我们说一般数据量大的话我们使用的是mycat中间件进行分片处理,如果更大的话,我们可以使用oracle数据库,如果更大的话可以使用hadoop或是云存储数据,不需要mycat作为工具手段。衡量的标准是项目有没有对应的硬件设备。 如果没有,基本就是使用mysql 因为搭建一套云环境或者大数据的环境基本都是超大型的公司。比如大数据中的所有的技术,例如hbase 或者是一大堆的服务器 一大堆的网络路由设备 或是私有云。或者是一大堆的数据库运维实施人员都是成本

6.进行库表拆分时,拆分规则怎么取舍?

1.不存在热点数据时,则使用连续分片

2.存在热点数据时,使用离散分片或者是综合分片

3.离散分片暂时迁移比较麻烦(但是mycat给出了数据迁移的脚本,虽然现在还是不是很完美),综合分片占用总机器数量多

7.Mycat中全局ID方案有哪些?程序自定义全局ID的方案有哪些?

1.mycat的全局id方案

(1)本地文件方式
sequnceHandlerType = 0

配置sequence_conf.properties

使用next value for MYCATSEQ_XXX

(2)数据库方式

sequnceHandlerType = 1

配置sequence_db_conf.properties

使用next value for MYCATSEQ_XXX或者指定autoIncrement

(3)本地时间戳方式

ID= 64 位二进制 (42(毫秒)+5(机器 ID)+5(业务编码)+12(重复累加)

sequnceHandlerType = 2

配置sequence_time_conf.properties

指定autoIncrement

\2. 程序方式

(1)Snowflake

(2)UUID

(3)Redis

8.Mycat的在分库分表之后,它是怎么支持联表查询的?

  • 使用好ER表
  • 善用全局表
  • 在sql上添加注解
/*!mycat:catlet=io.mycat.catlets.ShareJoin */

9.配置文件不会变多,配置的节点主机会变多?

不会

10.你们项目中分片的实现方式是什么?

在rule.xml中配置PartitionByMod

在线刷题小程序

参考链接

https://www.cnblogs.com/zhaozhitong/p/12450130.html

https://zhuanlan.zhihu.com/p/281636679

https://blog.csdn.net/jiongsui7605/article/details/94410680

https://blog.csdn.net/weixin_30682415/article/details/94993907

标签:面试题,dm,--,mycat,切分,分片,Mycat,ID
From: https://www.cnblogs.com/offerwx/p/16944561.html

相关文章

  • InputStream和OutputStream的区别和转换
    InputStream和OutputStream都是流,里面都能存储数据流(字节流或字符流)都代表内存数据,而且都是通过构造方法里传一个参数(比如File对象);它们的区别是:InputStream是将外部数据(......
  • 数据库面试题--Redis
    Redis1.什么是Redis?简述它的优缺点?2.Redis相比memcached有哪些优势?3.Redis有哪些数据结构?4.Redis主要消耗什么物理资源?5.Redis的全称是什么?6.一个字符串类型的值能......
  • GPIO软件模拟i2c
    结构及宏定义structi2c{unsignedintscl;unsignedintsda;};#defineI2C_ACK0/*PD_SDAleveltoackabyte*/#defineI2C_......
  • annotate和aggregate的区别
    一.基本区别aggregate:返回使用聚合函数后的字段和值。annotate:在原来模型字段的基础之上添加一个使用了聚合函数的字段二.使用方法classBook(models.Model):......
  • vue3新增知识点(组合式API、ref和reactive、响应式原理、setup、watch和watchEffect)持
    1.组合式API和声明式API的区别,组合式API的优点2.Vue3的响应式原理通过Proxy(代理):拦截对象中任意属性的变化:包括:属性值的读写、属性的添加、属性的删除等。通过reflect(反射):......
  • SAP MM 为UB类型的STO执行VL10B,报错-没有项目类别表存在(表T184L NL 0002 V)-之对策
    SAPMM 为UB类型的STO执行VL10B,报错-没有项目类别表存在(表T184LNL0002V)-之对策  业务人员创建好了UB类型的转储单据后,试图执行事务代码VL10B,未能成功,报错如下:......
  • .NET CORE读取自定义配置文件到Configuration中
    微软只提供了以下可以读取配置的方式,其中文件配置只能读取INI、JSON和XML文件,如果我想对其他自定义文件进行读取,那么我们可以使用自定义配置提供程序进行配置  比如,......
  • BZOJ 4833 最小公倍佩尔数 题解 (数论,推式子)
    题目链接神奇数论题。做这题需要知道两个结论:对于满足\(f_{i+2}=a\cdotf_{i+1}+b\cdotf_{i}\),也就是形式类似斐波那契数列的序列,有\(gcd(f_i,f_j)=f_{gcd(i,j)}\)(据......
  • Springboot 整合 SpringCache 使用 Redis 作为缓存
    一直以来对缓存都是一知半解,从没有正经的接触并使用一次,今天腾出时间研究一下缓存技术,开发环境为OpenJDK17与SpringBoot2.7.5源代码下载地址:https://hanzhe.lanzoue.com/i......
  • JAVA面试题--Docker
    Docker1.什么Docker2.Docker与虚拟机有何不同3.什么是Docker镜像4.什么是Docker容器5.Docker容器有几种状态6.DockerFile中最常见的指定是什么?7.DockerFile中的命......