MyCat面试题(学习笔记)

(学习笔记仅帮助自己理解记忆,部分内容可能存在理解错误,如有发现,还望指出)

1.mycat是什么?

一个新颖的数据库中间件产品
支持事务、ACID、可以替代MySQL的加强版数据库
结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群

2.mycat是用什么语言编写的?

MyCat 是目前最流行的基于 java 语言编写的数据库中间件,是一个实现了 MySQL 协议 的服务器

3.垂直切分和水平切分的不同?

垂直切分:按照不同的表(或者Schema)来切分到不同的数据库(主机)之上
优点:
拆分后业务清晰,拆分规则明确。
系统之间整合或扩展容易。
数据维护简单。
缺点:
部分业务表无法join,只能通过接口方式解决,提高了系统复杂度。
受每种业务不同的限制存在单库性能瓶颈,不易数据扩展跟性能提高。
事务处理复杂。
由于垂直切分是按照业务的分类将表分散到不同的库,所以有些业务表会过于庞大,存在单库读写与存储瓶颈,所以就需要水平
拆分来做解决。

水平切分:根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面
优点:
拆分规则抽象好,join操作基本可以数据库做。
不存在单库大数据,高并发的性能瓶颈。
应用端改造较少。
提高了系统的稳定性跟负载能力。
缺点:
拆分规则难以抽象。
分片事务一致性难以解决。
数据多次扩展难度跟维护量极大。
跨库join性能较差。

4.什么叫混合切分?

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

5.mcat如何搭建的?

基于3个核心配置文件:
schema.xml
rule.xml
server.xml

6.逻辑库,逻辑表,数据节点,节点主机分别代表的含义?

逻辑库:
逻辑库不是真实存在的,它是通过真实的库映射出来!回答:数据库集群对外的统一访问入口

逻辑表:
既然有逻辑库,那么就会有逻辑表,分布式数据库中,对应用来说,读写数据的表就是逻辑表。逻辑表,可以是数据切分后,分布在一个或多个分片库中,也可以不做数据切分,不分片,只有一个表构成

数据节点:

分片节点:
数据切分后,一个大表被分到不同的分片数据库上面,每个表分片所在的数据库就是分片节点(dataNode)

节点主机:
数据切分后,每个分片节点不一定会独占一台机器,同一机器上面可以有多个分片,这样一个或多个分片节点所在的机器就是节点主机,为了避免单节点主机并发数限制,尽量将读写压力高的分片节点均衡放置在不同的节点主机

E-R表:
关系型数据库是基于实体关系模型之上,通过其描述了真实世界中事物与关系,Mycat中的ER表即是来源于此。根据这一思路,提出了基于E-R关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上,即子表依赖父表,通过表分组保证数据join不会跨库操作。
表分组(Table Group)是解决跨分片数据join的一种很好的思路,也是数据切分规划的重要一规则。

7.mycat的分片规则是什么?

求模分片PartitionByMod

8.server.xml访问参数是什么?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值