![](https://img-blog.csdnimg.cn/direct/1d011f8da4dd4cf6b0fc8a00129b55eb.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL数据库
文章平均质量分 90
本专栏旨在帮助您深入了解MySQL数据库的内部工作原理,并提供优化数据库性能和解决常见问题的实用技巧。无论您是一个初学者还是一个经验丰富的数据库管理员或开发者,本专栏都将为您提供宝贵的知识和实践经验。
shark-chili
这个作者很懒,什么都没留下…
展开
-
主键自增是否会降低数据库insert性能?
的默认模式,在这种模式下进行插入时插入语句不会一致持有auto_inc锁到语句结束,而是一拿到锁就释放,这就是为什么插入11的语句因为gap锁阻塞不影响插入语句2自增id的获取。锁,它会在语句结束之后释放当前锁,注意这里所说的是语句级别下的锁,而不是事务级的锁(一个事务可能存在多个插入语句)。的插入不会导致任何性能问题,作为开发者我们更应该关心的是进行插入期间,业务上是否会存在那些干扰插入的间隙锁的情况。我们再设置为1,还是以上述的SQL为例,进行3个会话操作,首先会话1的范围删除,持有。原创 2024-04-09 08:30:00 · 220 阅读 · 0 评论 -
MySQL进阶专栏(周更)
这是截至今日写过的文章汇总,对于关注笔者公众号有一段时间的读者都知道,笔者会每周对自己写过的文章整理至相关专栏,以便读者可以按需进行检索阅读。,这里面会有笔者精心挑选的并发、JVM、MySQL数据库专栏,也有笔者日常分享的硬核技术小文。,同时我的公众号也有我精心整理的。原创 2024-01-27 11:23:58 · 506 阅读 · 0 评论 -
MySQL三大日志详解
这个是InnoDB存储引擎独有的日志,用于MySQL工作过程中宕机时进行数据恢复的文件,从而保证数据的持久性以及完整性。我们都知道MySQL是需要保证原子性的,这就需要在数据持久化操作之前会这些数据进行记录的,undo log做的就是这些事,当SQL操作发生异常等情况时,我们就可以通过undo log将事务回滚确保事务的原子性。而mvccMySQL事务与并发控制详解。原创 2020-08-29 17:27:30 · 446 阅读 · 1 评论 -
MySQL核心知识小结
在MySQL8.0之前是支持查询缓存的,查询缓存就是为了提高查询性能而诞生的。例如我们执行如果开启了查询缓存,那么这一结果就会被缓存起来,下次我们在进行相同查询则会直接从结果中获取。原创 2023-12-15 08:35:31 · 211 阅读 · 1 评论 -
内网环境MySQL操作非正常耗时问题排查小结
当网络操作出现非正常耗时时,我们就需要从网络连接通信过程的角度进行覆盖式排查,即从客户端连接、网络路由、端口或者防火墙配置、当前网络服务程序配置等顺序进行逐一排查。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。服务器配置进行反向解析,正是这样一个不可达的操作直至超时,等待长时间后的。原创 2024-06-12 08:13:53 · 1140 阅读 · 0 评论 -
MySQL索引进阶篇
在上一篇文章MySQL索引基础篇,我们对MySQL索引有了基础的认识,以及一些常见的索引调优技巧进行简单的了解,所以这篇文章我们不妨更进一步了解一下MySQL索引一些重要的分析、创建技巧和慢查询优化方案。原创 2022-03-24 09:32:34 · 3656 阅读 · 7 评论 -
MySQL索引基础篇
我们完全可以将索引可以看作是书本的目录吧,通过书本的目录查找对应的章节就会快一些,索引底层数据结构有b树b+树`、红黑树、哈希表等,对于MySQL而言,无论Innodb 还是MyIsam,使用的都是b+树。聚簇索引说的其实一种将索引结构和数据放在一起的文件结构,用高性能MySQL的话说它就是将数据行和相邻的键值紧凑在一起。因为数据行不可以同时放在两个地方,所以一张表中只可能有一个聚簇索引。它的文件后缀为.ibd,InnoDB 中的主键索引就属于聚簇索引。原创 2020-08-18 22:50:00 · 3336 阅读 · 1 评论 -
详解MySQL中一条SQL执行过程
对用户进行权限校验,若权限校验不通过则报错,然后执行器就会根据优化器优化后的执行计划(这里的执行计划是一个数据结构),执行器根据这个数据结构顺序调用存储引擎提供的API进行数据查询,并将查询结果返回给客户端,从而完成一次完整的SQL查询。优化min、max,对于建立索引的数据表来说,使用索引所在列的进行最大值和最小值查询时,MySQL优化器会将这种sql判定为常数查询,例如笔者建立的下面这张表,我们将table1的id设置为索引。了解SQL执行过程之后,我们不妨通过一个实际的例子带入一下了解全过程。原创 2023-12-13 08:38:17 · 907 阅读 · 1 评论 -
MySQL锁详解
答: 即可每一次操作时,锁的是整张表,锁的粒度大,上锁速度快,开销低,但是在高并发场景下性能非常差。相比之下,锁的粒度相对小一些,是针对索引字段加锁,锁的是选定的行数据,相比前者上锁速度会慢一些,因为需要找到当前行才能锁定,有可能会导致死锁问题。但是在高并发场景下处理SQL效率会高一些。需要补充的是,这个存储引擎仅仅支持表级锁,而支持行级锁。答: 我们都知道行级锁锁的是索引字段,而表级锁锁的是非索引字段,这就意味着如果我们进行update或者delete操作(这两个操作会上写锁互斥的,后文会说明)时w原创 2020-10-18 14:44:24 · 363 阅读 · 0 评论 -
MySQL事务与MVCC详解
某个逻辑报错数据库连接中断某台服务器突然宕机这时候我们数据库执行的操作可能才到一半,所以为了避免这种一半一半的情况,我们就需要事务来保证数据一致性。所以事务就是当作一个原子的逻辑组操作,要么全都成功执行,要么全部都失败。事务有分分布式事务和数据库事务,如果没有特指,我们平时所说的事务都是数据库事务,也就是本文探讨的话题。原创 2023-12-15 08:37:12 · 987 阅读 · 0 评论