ljlao ljlao
首页
ljlao总结
  • Java8
  • Java IO
  • Java基础
  • java基础01
  • java基础02
  • java基础03
  • Java虚拟机
  • Java集合
  • Servlet
  • Java高并发
  • 多线程
  • 并发编程面试专栏
  • 数据结构与算法
  • 操作系统
  • 编译原理
  • 计算机网络
  • Shiro
  • MyBatis
  • Spring
  • Spring Boot
  • Spring Cloud
  • RabbitMQ
  • RocketMQ
  • Kafka
  • Elasticsearch
  • Netty
  • Dubbo
  • ZooKeeper
  • 消息队列
  • 分布式
  • 微服务
  • 数据库
  • MySQL
  • Mycat
  • Redis
  • MongoDB
  • Cassandra
  • Hbase
首页
ljlao总结
  • Java8
  • Java IO
  • Java基础
  • java基础01
  • java基础02
  • java基础03
  • Java虚拟机
  • Java集合
  • Servlet
  • Java高并发
  • 多线程
  • 并发编程面试专栏
  • 数据结构与算法
  • 操作系统
  • 编译原理
  • 计算机网络
  • Shiro
  • MyBatis
  • Spring
  • Spring Boot
  • Spring Cloud
  • RabbitMQ
  • RocketMQ
  • Kafka
  • Elasticsearch
  • Netty
  • Dubbo
  • ZooKeeper
  • 消息队列
  • 分布式
  • 微服务
  • 数据库
  • MySQL
  • Mycat
  • Redis
  • MongoDB
  • Cassandra
  • Hbase
  • Java基础

    • java基础01
    • java基础02
    • java基础03
    • Java虚拟机
    • Java集合
    • Java高并发
    • Servlet
    • 多线程
    • 并发编程面试专栏
    • 操作系统
    • 数据结构与算法
    • 编译原理
    • 计算机网络
    • 设计模式
    • Java IO
    • Java8
    • Java基础
  • java高级

    • MyBatis
    • 消息队列
    • Kafka
    • RabbitMQ
    • Netty
    • Shiro
    • RocketMQ
    • ZooKeeper
    • Dubbo
    • Spring Boot
    • Elasticsearch
    • Spring Cloud
    • Spring
    • 分布式
    • 微服务
  • sql

    • Cassandra
    • MongoDB
    • Mycat
      • 你们项目中分片的实现方式是什么?-Java面试题
      • 配置文件不会变多,配置的节点主机会变多?-Java面试题
      • Mycat的在分库分表之后,它是怎么支持联表查询的?-Java面试题
      • Mycat中全局ID方案有哪些?程序自定义全局ID的方案有哪些?-Java面试题
      • 进行库表拆分时,拆分规则怎么取舍?-Java面试题
      • mycat分库可以分成100个库吗?-Java面试题
      • 搭建mycat的核心配置文件有哪些?-Java面试题
      • 在项目组中,切分后的库从哪里而来?-Java面试题
      • 什么叫混合切分-Java面试题
      • Mycat是什么?-Java面试题
    • MySQL
    • Redis
    • Hbase
    • 数据库
  • 运维

    • Jenkins
    • Docker
    • Kubernetes
    • Linux
    • Maven
    • Nginx
    • Tomcat
    • 云计算
目录

Mycat

[TOC]

# Mycat

# 你们项目中分片的实现方式是什么?-Java面试题


在rule.xml中配置PartitionByMod


# 配置文件不会变多,配置的节点主机会变多?-Java面试题


不会


# Mycat的在分库分表之后,它是怎么支持联表查询的?-Java面试题


使用好ER表

善用全局表

在sql上添加注解

/*!mycat:catlet=io.mycat.catlets.ShareJoin */

# Mycat中全局ID方案有哪些?程序自定义全局ID的方案有哪些?-Java面试题


  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

  1. 程序方式

(1)Snowflake

(2)UUID

(3)Redis


# 进行库表拆分时,拆分规则怎么取舍?-Java面试题


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

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

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


# mycat分库可以分成100个库吗?-Java面试题


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


# 搭建mycat的核心配置文件有哪些?-Java面试题


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

rule.xml:分片规则

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

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


# 在项目组中,切分后的库从哪里而来?-Java面试题


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

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


# 什么叫混合切分-Java面试题


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


# Mycat是什么?-Java面试题


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


上次更新: 2022/03/09, 23:07:05
MongoDB
MySQL

← MongoDB MySQL→

Theme by Vdoing | Copyright © 2019-2025 鄂公网安备42028102000288 鄂ICP备19019767号-2鄂ICP备19019767号-4
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式