![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 80
特特专属
这个作者很懒,什么都没留下…
展开
-
单库单表到分库分表的平滑迁移
自此就完成了数据库架构的升级,在整个迁移过程中,秉承着对业务影响最小的策略理念执行,最终实现数据和功能平滑迁移到新的数据库架构。大幅度提高了系统扩展性和吞吐量,可以有效支撑业务快速发展。原创 2024-08-22 10:46:36 · 346 阅读 · 0 评论 -
数据库架构演变过程
接下来用电商作为案例分享电商包括的基本功能:商品、订单、用户。原创 2024-08-21 20:24:20 · 382 阅读 · 0 评论 -
MySQL实战之普通索引和唯一索引,应该怎么选择?
在之前的文章中,我们讲解了索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就来讨论一下,在不同的业务场景下,应该选择普通索引,还是唯一索引?假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。所以,你一定会考虑在id_card字段上建索引。由于身份证号字段比较大,不建议直接把身份证号当做主键,那么现在你有两个选择,要么给id_card字段创建唯一索引,要么创建一个普通索引。原创 2023-03-09 23:39:22 · 461 阅读 · 1 评论 -
MySQL实战之事务到底是隔离的还是不隔离的
我们在MySQL实战之事务隔离:为什么你改了我还看不见讲过事务隔离级别的时候提到过,如果是可重复读隔离级别,事务T启动的时候会创建一个视图read-view,之后事务T执行期间,即使有其他事务修改了数据,事务T看到的仍然跟在启动时看到一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。但是我们在MySQL实战之行锁功过:怎么减少行锁对性能的影响?分享行锁的时候又提到,一个事务要更新一行,如果刚好有另外一个事务拥有这一行的行锁,它又不能这么超然了,会被锁住,进入等待状态。原创 2023-03-08 01:00:07 · 306 阅读 · 0 评论 -
MySQL实战之行锁功过:怎么减少行锁对性能的影响?
在上一篇博客中,已经介绍了MySQL的全局锁和表级锁,今天我们就讲一下MySQL的行锁MySQL的行锁是在引擎层实现的。并不是所有的引擎都支持行锁,比如MyISAM引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这很影响业务的并发度。InnoDB是支持行锁的,这也是MyISAM被InnoDB代替的重要原因之一。今天就来聊聊InnoDB的行锁,以及如何通过减少锁冲突来提高业务的并发度。行锁是针对数据表中行记录的锁。原创 2023-03-06 23:32:17 · 485 阅读 · 0 评论 -
MySQL实战之全局锁和表锁:给表加个字段怎么有这么多阻碍
讲完索引,接下来聊一聊MySQL的锁。数据库锁设计的初衷是解决并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理的控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。全局锁、表锁和行锁,今天主要介绍全局锁和表锁,行锁会单独一章介绍。由于锁的设计比较复杂,我们不会讲解锁的具体实现细节,只会介绍碰到锁时的现象和背后的原理。原创 2023-03-01 23:31:48 · 339 阅读 · 0 评论 -
MySQL实战之深入浅出索引(下)
在上一篇文章中,我们介绍了InnoDB索引的数据结构模型,今天我们再继续聊一下跟MySQL索引有关的概念。在介绍之前,我们先看一个问题:表初始化语句如果我们执行select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行?下面是该表的索引数据结构1.在k索引树上找到k=3的记录,取得ID=3002.在到ID索引树查到ID=300对应的行记录3.在k索引树去下一个值k=5,取得ID=500。原创 2023-02-28 23:45:07 · 142 阅读 · 0 评论 -
MySQL实战之深入浅出索引(上)
提到数据库,大家肯定会想到数据库的索引,很多人都知道索引是为了提高查询效率的,那么今天我就给大家讲一下,什么是索引,索引的数据结构是什么,索引是如何工作的。因为索引的内容比较多,会分为上下两篇进行讲解。原创 2023-02-24 00:10:34 · 150 阅读 · 0 评论 -
MySQL实战之事务隔离:为什么你改了我还看不见
在我们使用数据库的过程中,不可避免的要和事务打交道,而讲解事务最经典的案例就是转账,例如:你要给朋友小刘转账100元,而且你只有100元。转账要经过一系列的操作,比如查询余额,发起转账,扣除余额,这些操作都必须保持是原子的,要不然可能还没有在扣除余额的时候,完全可以利用这个时间,在给其他人转账,这样输入和输出的金额就对不上了,银行就会混乱了,这时候就可以利用事务来解决该问题。原创 2023-02-22 23:41:55 · 239 阅读 · 0 评论 -
Mysql实战之日志系统:一条SQL更新语句是如何执行的
上一篇咱们了解了MySQL 的执行过程,其中设计连接器、分析器、优化器、执行器和存储引擎,接下来我将给大家讲解一下在MySQL中一条更新语句是如何执行。我相信大家可能听公司的DBA提起过,可以将数据恢复到半个月内任意时间的状态,是不是感觉很高大上,很厉害呢,下面我就将这个谜底一步一步解开。原创 2023-02-22 00:25:00 · 196 阅读 · 0 评论 -
Mysql实战之一条SQL查询语句是如何执行的
作为一位开发人员,必然要和mysql打交道,平常肯定也写各种各样的sql语句,下面咱们先来看一个非常简单的sql语句我们看到这个sql,都会说,很简单的一个查询语句,执行结果是查询order表中id=10的所有数据,但是大家知道这个sql在Mysql内部是如何执行的吗?接下来,我就把一一给大家进行讲解,mysql的执行过程。原创 2023-02-20 23:42:06 · 252 阅读 · 0 评论 -
spring boot 配置 多数据源
spring boot 配置 多数据源原创 2022-08-14 23:41:43 · 556 阅读 · 0 评论 -
如何通过 docker 创建并运行 mysql
通过docker 安装mysql原创 2022-08-14 20:43:14 · 707 阅读 · 0 评论 -
mysql事务基本介绍
##1.事务的四大特性(AUID)###1.1原子性(Atomicity)执行一条命令,或者多条命令,要么全部成功,要么全部失败,不存在中间状态###1.2一致性(Uniformity)执行一条命令,或者多条命令,执行前后整体保持一致(比如:A有余额100元,B有余额100元,A给B转账50元,转账后A有余额50元,B有余额150元,A+B前后总额分别都是200元)###1.3隔离性(Isolation)隔离性是指事务和事务之间操作具有隔离性,即是一个事务进行操作,不应该受其他事务的影响,此处会原创 2020-09-15 15:52:39 · 233 阅读 · 0 评论