我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL-分库分表详解(七)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL-分库分表详解(七)

♥️作者:小刘在C站

♥️个人主页: 小刘主页 

♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术

♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSDN让你我相遇!

前言

上章讲到MySQL-分库分表详解(六)

目录

5.3.7 字符串hash解析算法

1). 介绍

 2). 配置

 3). 测试

5.3.8 按天分片算法

1). 介绍

 2). 配置

 3). 测试

5.3.9 自然月分片

1). 介绍

​编辑

 2). 配置

 3). 测试

6 MyCat管理及监控

6.1 MyCat原理

6.2 MyCat管理

6.3 MyCat-eye

 6.3.1 介绍

6.3.2 安装

6.3.3 访问

 6.3.4 配置

 6.3.5 测试

A. 性能监控

 B. 物理节点

 C. SQL统计

​编辑

 D. SQL表分析

 E. SQL监控

​编辑

 F. 高频SQL


5.3.7 字符串hash解析算法

1). 介绍

截取字符串中的指定位置的子字符串 , 进行 hash 算法, 算出分片。
 2). 配置
schema.xml 中逻辑表配置:
schema.xml中数据节点配置: 
rule.xml中分片规则配置:
namesharding-by-stringhash512 20:2
分片规则属性含义:

 示例说明:

 3). 测试
配置完毕后,重新启动MyCat,然后在mycat的命令行中,执行如下SQL创建表、并插入数据,查看数据分布情况。
 
create table tb_strhash(name varchar(20) primary key,content varchar(100))engine=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO tb_strhash (name,content) VALUES('T1001', UUID());INSERT INTO tb_strhash (name,content) VALUES('ROSE', UUID());INSERT INTO tb_strhash (name,content) VALUES('JERRY', UUID());INSERT INTO tb_strhash (name,content) VALUES('CRISTINA', UUID());INSERT INTO tb_strhash (name,content) VALUES('TOMCAT', UUID());

5.3.8 按天分片算法

1). 介绍
按照日期及对应的时间周期来分片。
 2). 配置
schema.xml中逻辑表配置:
schema.xml中数据节点配置:
rule.xml中分片规则配置:
create_timesharding-by-dateyyyy-MM-dd2022-01-012022-01-3010
分片规则属性含义:
 3). 测试
配置完毕后,重新启动MyCat,然后在mycat的命令行中,执行如下SQL创建表、并插入数据,查看数据分布情况。
create table tb_datepart(id bigint not null comment 'ID' primary key,name varchar(100) null comment '姓名',create_time date null);insert into tb_datepart(id,name ,create_time) values(1,'Tom','2022-01-01');insert into tb_datepart(id,name ,create_time) values(2,'Cat','2022-01-10');insert into tb_datepart(id,name ,create_time) values(3,'Rose','2022-01-11');insert into tb_datepart(id,name ,create_time) values(4,'Coco','2022-01-20');insert into tb_datepart(id,name ,create_time) values(5,'Rose2','2022-01-21');insert into tb_datepart(id,name ,create_time) values(6,'Coco2','2022-01-30');insert into tb_datepart(id,name ,create_time) values(7,'Coco3','2022-01-31');

5.3.9 自然月分片

1). 介绍
使用场景为按照月份来分片, 每个自然月为一个分片。
 2). 配置
schema.xml中逻辑表配置:
schema.xml中数据节点配置:
rule.xml中分片规则配置:    
create_timepartbymonthyyyy-MM-dd2022-01-012022-03-31
      分片规则属性含义:
 3). 测试
配置完毕后,重新启动MyCat,然后在mycat的命令行中,执行如下SQL创建表、并插入数据,查看数据分布情况。
create table tb_monthpart(id bigint not null comment 'ID' primary key,name varchar(100) null comment '姓名',create_time date null);insert into tb_monthpart(id,name ,create_time) values(1,'Tom','2022-01-01');insert into tb_monthpart(id,name ,create_time) values(2,'Cat','2022-01-10');insert into tb_monthpart(id,name ,create_time) values(3,'Rose','2022-01-31');insert into tb_monthpart(id,name ,create_time) values(4,'Coco','2022-02-20');insert into tb_monthpart(id,name ,create_time) values(5,'Rose2','2022-02-25');insert into tb_monthpart(id,name ,create_time) values(6,'Coco2','2022-03-10');insert into tb_monthpart(id,name ,create_time) values(7,'Coco3','2022-03-31');insert into tb_monthpart(id,name ,create_time) values(8,'Coco4','2022-04-10');insert into tb_monthpart(id,name ,create_time) values(9,'Coco5','2022-04-30');

6 MyCat管理及监控

6.1 MyCat原理

 MyCat中,当执行一条SQL语句时,MyCat需要进行SQL解析、分片分析、路由分析、读写分离分析等操作,最终经过一系列的分析决定将当前的SQL语句到底路由到那几个(或哪一个)节点数据库,数据库将数据执行完毕后,如果有返回的结果,则将结果返回给MyCat,最终还需要在MyCat中进行结果合并、聚合处理、排序处理、分页处理等操作,最终再将结果返回给客户端。

而在 MyCat 的使用过程中, MyCat 官方也提供了一个管理监控平台 MyCat-Web MyCat-eye )。Mycat-web Mycat 可视化运维的管理和监控平台,弥补了 Mycat 在监控上的空白。帮 Mycat分担统计任务和配置管理任务。 Mycat-web 引入了 ZooKeeper 作为配置中心,可以管理多个节点。 Mycat-web 主要管理和监控 Mycat 的流量、连接、活动线程和内存等,具备 IP 白名单、邮 件告警等模块,还可以统计 SQL 并分析慢 SQL 和高频 SQL 等。为优化 SQL 提供依据。

6.2 MyCat管理

Mycat默认开通2个端口,可以在server.xml中进行修改。8066 数据访问端口,即进行 DML DDL 操作。 9066 数据库管理端口,即 mycat 服务管理控制功能,用于管理mycat的整个集群状态 连接MyCat的管理控制台:
mysql -h 192.168.200.210 -p 9066 -uroot -p123456

6.3 MyCat-eye

 6.3.1 介绍

Mycat-web(Mycat-eye)是对mycat-server提供监控服务,功能不局限于对mycat-server使 用。他通过JDBC连接对MycatMysql监控,监控远程服务器(目前仅限于linux系统)cpu、内 存、网络、磁盘。 Mycat-eye运行过程中需要依赖zookeeper,因此需要先安装zookeeper

6.3.2 安装

1). zookeeper安装 2). Mycat-web安装

6.3.3 访问

http://192.168.200.210:8082/mycat

 6.3.4 配置

1). 开启MyCat的实时统计功能(server.xml)
1 
2). Mycat监控界面配置服务地址

 6.3.5 测试

配置好了之后,我们可以通过MyCat执行一系列的增删改查的测试,然后过一段时间之后,打开 mycat-eye的管理界面,查看mycat-eye监控到的数据信息。

A. 性能监控

 B. 物理节点

 C. SQL统计

 D. SQL表分析

 E. SQL监控

 F. 高频SQL

 

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

来源地址:https://blog.csdn.net/lzl10211345/article/details/131743399

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL-分库分表详解(七)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql死锁和分库分表问题详解

记录生产mysql的问题点。 业务场景与问题描述请求一个外部接口时,每天的请求量在900万左右。 分为请求项目和回执这两个项目。请求是用来调用外部接口,回执是接收发送的接口。 在发送请求前会先插入数据库。 在请求后,如果接口返回调用失败,会
2022-06-01

mysql分库分表

一、垂直拆分1、垂直分库:在分布式系统开发中,基本都是按照模块划分,每个业务模块建立一个数据库 特点:业务区分度高,方便维护管理;各个模块独立维护,可以分摊系统的维护成本,提高可用性。 2、垂直分表:单张宽表,根据实际业务场景,可以拆分为多个子表。垂直拆分的缺
mysql分库分表
2015-03-08

详解MySQL分区表

前言: 分区是一种表的设计模式,通俗地讲表分区是将一大表,根据条件分割成若干个小表。但是对于应用程序来讲,分区的表和没有分区的表是一样的。换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理。本篇文章给大家带来的内容是关于MyS
2022-05-27

Mysql分库分表全面理解

引言 微服务、分布式大行其道的当下,中、高级Java工程师面试题中高并发、大数据量、分库分表等已经成 了面试的高频词汇,这些知识不了解面试通过率不会太高。你可以不会用,但你不能不知道,就是这么 一种现状。技术名词大多晦涩难懂,不要死记硬背理解最重要,当你捅破那
Mysql分库分表全面理解
2019-05-21

MySQL总结(七)数据库表的约束-详解

数据库表的约束1. 数据库约束的概述1.1 约束的作用:对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。约束在创建表的时候添加比较合适。1.2 约束种类:约束名约束关键字特点主键primary key
MySQL总结(七)数据库表的约束-详解
2017-04-03

MySQL如何分库分表

1. 我们为什么需要分库分表 在分库分表之前,就需要考虑为什么需要拆分。我们做一件事,肯定是有充分理由的。所以得想好分库分表的理由是什么。我们现在就从两个维度去思考它,为什么要分库?为什么要分表? 1.1 为什么要分库 如果业务量剧增,数
2023-08-17

MySQL分区表和分桶表的操作详解

目录1.创建分区表2.增删改查操作2.1 yWiKVprfOU插入数据2.2 操作数据3. 二级分区表3.1 创建分区表3.2 插入数据4.动态分区5.分桶表5.1 新建分桶表5.2 插入数据5.3 既分区有分桶6 分区与分桶的区别1.创建
2023-05-12

MySQL分库分表实例分析

这篇“MySQL分库分表实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL分库分表实例分析”文章吧。一、为什么
2023-06-30

分库分表(了解)

站在架构师的角度来看分库分表  1、单体应用架构 一个归档包(可以是JAR、WAR、EAR或其它归档格式)包含所有功能的应用程序,通常称为单体应用。 优点 便于共享:单个归档文件包含所有功能,便于在团队之间以及不同的部署阶段之间共享。 易于测试:单体应用一
分库分表(了解)
2021-02-06

MySQL分库分表实践分享

MySQL分库分表是一种常见的数据库优化策略,用于解决单库单表在数据量或并发访问量过大时的性能瓶颈问题。通过将数据分散到多个数据库或表中,可以提高系统的扩展性和性能。以下是关于MySQL分库分表实践的相关信息:分库分表实践分享垂直分库:根
MySQL分库分表实践分享
2024-10-20

MySQL分库分表后路由策略设计详情

目录概述支持场景路由策略用户端路由key商家路由key概述分库分表后设计到的第一个问题就是,如何选择路由key,应该如何对key进行路由。路由key应该在每个表中都存在而且唯一。路由策略应尽量保证数据能均匀进行分布。如果是对大数据量进行
2022-08-08

详解分库分表后非分片键如何查询

这篇文章主要为大家介绍了分库分表后非分片键如何查询详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-10

编程热搜

目录