![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 88
MySQL
小毕超
善于钻研思考,乐于追求新知识,热爱微服务架构,国内软考高级系统架构设计师职称,国际TOGAF鉴定级企业架构设计师,华为云·云享专家,CSDN博客专家。曾获“联想杯”移动互联比赛 江苏省一和国二成绩,第四届全国应用型人才比赛“兄弟连杯”国一成绩。
展开
-
MySQL 使用 MyFlash 快速恢复误删除、误修改数据
MyFlash 是由美团点评公司技术工程部开发并维护的一个开源工具,主要用于MySQL数据库的DML操作的回滚。这个工具通过解析binlog日志,帮助用户高效、方便地进行数据恢复。MyFlash的优势在于它提供了更多的过滤选项,使得回滚操作变得更加容易。与其他数据恢复工具相比,MyFlash无需将binlog解析成文本再进行转换,而是提供了基于库、表、SQL类型、位置、时间等多种过滤方式。原创 2024-06-15 14:59:57 · 700 阅读 · 0 评论 -
K8s 部署 MySQL 8.0.20 主从复制结构
K8s 部署 MySQL 8.0.20 主从复制结构原创 2024-04-21 10:32:49 · 561 阅读 · 0 评论 -
MySQL Innodb中 可重复读隔离级别是否能完全规避幻读
在 MySQL Innodb引擎可重复读隔离级别下,已经尽可能最大程度的规避幻读的问题了,使得大多数情况下,重复读都是可以得到一致的结果。但是某些个别情况下还是不可避免会发生幻读。原创 2024-04-14 14:04:26 · 558 阅读 · 0 评论 -
MySQL Innodb 中的排它锁、共享锁、意向锁、记录锁、间隙锁、临键锁、死锁讲解
MySQL作为流行的关系型数据库管理系统之一,在处理并发访问时,锁起着至关重要的作用。锁的使用可以确保数据的完整性,同时也是实现并发操作的必备工具。在MySQL Innodb 引擎中锁可以理解为两个方向的东西,一个是基本锁的类型,一个是锁粒度的策略。原创 2024-04-14 09:33:05 · 1215 阅读 · 0 评论 -
MySQL Innodb 引擎中预防 Update 操作上升为表锁
由于表锁的粒度过大,即使只有部分行被修改,也会阻塞其他事务对整个表的写操作,限制了系统的吞吐量和响应速度。对于在`Innodb` 引擎中,虽然采用了粒度更细的行锁,但也不是所有的数据修改操作都是仅锁住相关的行,有时很可能不注意就导致了表锁。原创 2024-03-29 16:22:19 · 568 阅读 · 0 评论 -
MySQL 中 聚集索引、非聚集索引、覆盖索引、索引下推 到底是什么
MySQL 中 聚集索引、非聚集索引、覆盖索引、索引下推 到底是什么。原创 2024-03-24 10:40:05 · 1038 阅读 · 0 评论 -
MySQL B+树索引 和 Redis 中跳表索引的区别
在 MySQL 中常用的索引是 B+树索引,而 Redis 中,例如 zset 使用的的是跳表索引,两者有什么区别呢,MySQL 为什么不使用 跳表 呢?或者说 Redis 中为什么不使用 B+树 呢?原创 2024-03-20 19:20:59 · 892 阅读 · 0 评论 -
MySQL 搭建双主复制服务 并 通过 HAProxy 负载均衡
在数据库管理中,数据的备份和同步是至关重要的环节,而双主复制作为一种高可用性和数据同步的解决方案,通过让两个数据库实例同时充当主服务器和从服务器,`MySQL`双主复制可以实现数据的双向同步,为数据库系统提供了更灵活和可靠的解决方案。即使其中一个主服务器发生故障,另一个主服务器仍然可以继续提供服务,确保系统的稳定性和可用性。这种数据同步方式不仅可以加强数据的备份与恢复能力,还可以提高系统的扩展性,适用于需要高度数据一致性和容错性的场景。原创 2024-03-19 14:48:37 · 1397 阅读 · 0 评论 -
HAProxy讲解及HAProxy 负载 mysql 集群
一、HAProxy 简介HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非原创 2021-12-05 20:52:56 · 4899 阅读 · 1 评论 -
KubeSphere - 搭建 mysql 主从复制结构
一、KubeSphere上篇文章我们介绍了KubeSphere 多租户场景的实现,本篇文章我们借助KubeSphere 搭建mysql的主从结构,下面是上篇文章的地址:https://blog.csdn.net/qq_43692950/article/details/122784211在实验开始前,请确保已经安装完成了k8s 及 kubesphere 环境:二、mysql 主节点搭建创建 PVC 存储卷首先创建主节点的存储卷 PVC,存储主节点产生的数据文件:给配制文件起个名称及描述:原创 2022-02-08 14:09:46 · 5236 阅读 · 2 评论 -
基于 mydumper 实现 MySQL 定期全量备份、恢复方案
mydumper 是一款社区开源的逻辑备份工具,由 C 语言编写,与 MySQL 官方提供的 mysqldump 相比,它具有更高的性能和更多的功能,例如:支持多线程导出数据,速度更快;支持一致性备份;支持将导出文件压缩,节约空间;支持多线程恢复;支持以守护进程模式工作,定时快照和连续二进制日志;支持按照指定大小将备份文件切割;原创 2024-03-14 17:39:44 · 1159 阅读 · 0 评论 -
MySQL 针对逗号拼接的数据字段转行思路
MySQL 针对逗号拼接的数据字段转行思路原创 2024-03-08 14:03:33 · 403 阅读 · 0 评论 -
MySQL 中 int(1) 和 int(10) 会影响存储的长度吗
在`MySQL`数据库设计中,经常会遇到 `int` 类型的字段,并会习惯性的指定长度,比如: `int(1)` 和`int(10)`,而一些新手可能会误解它们之间的关系,认为 `int(10)` 能够存储更多的数据。然而,实际上这两者之间的区别并非是存储容量上的不同,而是涉及到显示的问题。原创 2024-02-02 14:31:49 · 673 阅读 · 0 评论 -
MySQL 分组后统计 TopN 优化思路
在 `MySQL` 中我们需要分组统计基本都需要借助 `group by` 语句,但基本都是对一个组下的整体操作,比如计算最大最小值,计算总数,整体拼接等等,但如果想要对每个组下的数据排序后取出 `topN` 值便不是那么的方便了,本文就带大家探索下`MySQL` 分组后统计 `TopN` 的优化思路。原创 2023-11-03 17:46:39 · 344 阅读 · 0 评论 -
mybatis-plus 使用 mybatis-plus-join 增强多表关联查询能力
`mybatis-plus` 原生的能力不支持多表关联,对于这种场景只能通过写`SQL`进行实现,而`mybatis-plus-join` 则是建立在 `mybatis-plus` 基础之上的扩展框架,可以在不影响原有能力之上通过简单的`API`即可实现多表关联能力而无需编写`SQL`。原创 2023-10-31 19:04:28 · 3402 阅读 · 0 评论 -
基于 MySQL 排它锁实现分布式可重入锁解决方案
本文基于MySQL实现的一种分布式可重入锁的效果。原创 2023-02-11 21:23:26 · 1860 阅读 · 0 评论 -
基于 dynamic-datasource 实现 DB 多数据源及事物控制、读写分离、负载均衡解决方案
下面分别从 多数据源及事物控制、读写分离实现、负载均衡实现三个方面进行实践。可以注解在方法上或类上,同时存在就近原则 方法上注解 优先于 类上注解。注解即可,但是仅针对于单个数据源的情况,多数据源下我们可以使用。已经实现多数据源查询效果,下面继续事物的控制,应该都了解在。上面通过 mybatis 的拦截器实现了读写分离,同时。都需要添加注解,那我们可以是不是可以通过。针对于多数据源的切换推出了。从上面的步骤中,已经了解到了。可以看到明显的负载轮训效果了。的快速集成多数据源的启动器。原创 2022-08-21 17:34:44 · 2793 阅读 · 1 评论 -
Spring Data R2DBC 响应式数据库操作使用
一、R2DBCR2DBC(Reactive Relational Database Connectivity)是在 2018 年 Spring One Platform 大会被提出来的,它旨在使用完全无阻塞驱动程序创建数据库链接,为 SQL 数据库创建响应式 API。Spring Data R2DBC项目是Spring Data家族的一部分,可轻松实现基于R2DBC的存储库。R2DBC(Reactive Relational Database Connectivity)是一个使用反应式驱动集成关系数据库原创 2022-03-27 21:25:41 · 8771 阅读 · 3 评论 -
使用 mysqlbinlog 分析 binlog 恢复误删除或修改的数据
一、mysqlbinlog在 mysql 中binlog 记录着所有的DDL 和 DML,前提是开启了 binlog,这个时候如果我们误删除了数据或者误修改了数据,就可以通过 binlog 日志文件进行查找恢复。但是 binlog 是以二进制的方式进行存储的,我们直接查看的话并不能看到我们想要的数据,而 mysqlbinlog 就是提供给我们方便查询binlog的工具,我们借助它可以根据时间段或者位置进行快速定位,并且还可以连接远程服务器的 mysql 查看 binlog 信息。首先在开始实验前,请确原创 2022-03-13 21:54:32 · 7056 阅读 · 2 评论 -
mysql优化技巧点
Mysql优化技巧总结一、EXPLAIN SQL分析工具explain主要用于查看SQL语句的执行计划,可以看出SQL执行的详细信息。EXPLAIN select * from user where id=1;其中参数含义为:ID列id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。MySQL将 select 查询分为简单查询(SIMPLE)和复杂查询(PRIMARY)。复杂查询分为三类:简单子查询、派生表(from原创 2021-01-31 20:26:04 · 2463 阅读 · 0 评论 -
Mysql B+树索引算法原理
一、索引算法分类Hash表 等值查询效率比较高、但是不支持范围查询二叉树 时间复杂度log2n 缺点:有可能产生不平衡 类似于链表的结构 时间复杂度为o(n)平衡二叉树avl/红黑树 使用旋转和变色方式保证平衡 它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1缺点: 如果存放几百条数据的情况下,树高度越高,查询效率会越慢B-Tree树叶子节点具有相同的深度、叶子节点指针是为空 ,所有索引的元素不能够重复 叶子节点的数据从左到右递增排列。B+树1.非叶子节点不存储data,只存原创 2021-01-24 23:07:56 · 4615 阅读 · 0 评论 -
Mysql底层优化(通讯、缓存池,引擎,分支)
Mysql底层原理及缓存池一、MySQL基础知识mysql通信协议采用tcp/ip半双工机制的长连接,数据双向传输,但不能同时传输。mysql 的长连接等待超时时间默认为8小时,就是8小时内如果没有做任何sql的操作,MySQL将自动断开该连接,可通过show global variables like 'wait_timeout';命令查看超时时间,28800秒即8小时。在项目中我们尽量使用数据库连接池内的连接,使得它们不会因为闲置超时而被 MySQL 断开,并且每次使用连接前检查连接是否可用,定期原创 2021-01-24 21:49:58 · 6858 阅读 · 2 评论 -
Canal+Kafka实现mysql与Redis数据同步
Canal+Kaka实现mysql与Redis数据同步一、Canal简介canal主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。基于日志增量订阅和消费的业务包括数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 ca原创 2020-12-13 13:27:12 · 2590 阅读 · 1 评论 -
SpringBoot多数据源+分布式事物配置
SpringBoot多数据源+分布式事物SpringBoot多数据源application.properties#多数据源配置spring.datasource.db1.url = jdbc:mysql://localhost:3306/db1? useUnicode=true&characterEncoding=utf-8spring.datasource.db1.username = db1spring.datasource.db1.password = 123456spring原创 2020-07-19 12:28:36 · 2364 阅读 · 0 评论 -
SpringBoot JPA 基本使用 及 多表关联
对象-关系映射(Object/Relation Mapping,简称 ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据原创 2020-07-19 11:54:33 · 2096 阅读 · 0 评论 -
MySql Federated引擎跨服务器数据表映射
MySql Federated引擎实现跨服务器数据库联合查询[mysqld]federatedshow engines;CREATE TABLE `hn_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`)) ENGINE=FEDERATED CONNECTION='mysql://root:root@192.168.159.132:3306/原创 2020-12-17 16:28:20 · 2008 阅读 · 0 评论 -
Sharding-jdbc 四主四从 8库24表水平拆分读写分离配置,及MyCat 四主四从8库8表水平拆分读写分离配置
一、Sharding-jdbc 四主四从 8库24表水平拆分读写分离配置关于Sharding-jdbc的介绍讲解,请查看我的另一篇博客https://blog.csdn.net/qq_43692950/article/details/110148077Sharding-jdbc 配置四主四从 8库24表水平拆分读写分离:application.yml整体架构:主机数据库数据表192.168.1.1db(数据库1-主)user_info_1,user_info_2,us原创 2020-11-26 23:21:11 · 2309 阅读 · 0 评论 -
采用Sharding-Jdbc对mysql 读写分离、分库分表
采用Sharding-Jdbc对mysql 读写分离、分库分表一、Sharding-Jdbc介绍ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务 和 数据库治理功能,可满足各种多样化的应用场景。二、Sharding-Jdbc与MyCat区别MyCat是一个基于第三方应用中间件数据库代理框架,客户端所有的jdb原创 2020-11-25 22:07:14 · 3326 阅读 · 0 评论 -
SpringBoot使用Mybatis-Plus及多数据源、代码生成
SpringBoot使用Mybatis-Plus优点Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。整合pom <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifact原创 2020-07-19 18:39:22 · 4785 阅读 · 2 评论 -
MyCat 分表分库 水平分片策略
MyCat 分表分库 水平分片策略一、数据库分表分库策略数据库分表分库原则遵循 垂直拆分与水平拆分垂直拆分是把不同的表拆到不同的数据库中,而水平拆分是把同一个表拆到不同的数据库中。相对于垂直拆分,水平拆分不是将表的数据做分类,而是按照某个字段的某种规则来分散到多个库之中,每个表中包含一部分数据。简单来说,我们可以将数据的水平切分理解为是按照数据行的切分,就是将表中 的某些行切分到一个数据库,而另外的某些行又切分到其他的数据库中,主要有分表,分库两种模式该方式提高了系统的稳定性跟负载能力,但是跨库join原创 2020-08-03 17:23:46 · 2235 阅读 · 0 评论 -
MyCat搭建mysql读写分离介绍,并使用SpringBoot测试
MyCat搭建mysql读写分离介绍,并使用SpringBoot测试一、mysql主从复制MySQL的主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是copy文件来实现的,而是借助binlog日志文件里面的SQL命令实现的主从复制,可以理解为我再Master端执行了一条SQL命令,那么在Salve端同样会执行一遍,从而达到主从复制的效果。二、主从复制原理MySQL的主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是co原创 2020-08-01 15:46:13 · 1597 阅读 · 0 评论 -
Mysql优化技巧、存储过程、视图、触发器讲解
Mysql优化一、存储过程存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升存储过程特点有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能函数的普遍特性:模块化,封装,代码复用原创 2020-07-19 14:20:04 · 2964 阅读 · 1 评论