![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 84
·梅花十三
这个作者很懒,什么都没留下…
展开
-
心灵拷问:MySQL 到底是怎么加行级锁、间隙锁、临键锁的?
Next-Key Lock 是一张间隙锁,相较于行锁只锁定一行,它会锁定一个区间范围,加锁的范围区间内的索引键值会被锁定MySQL InnoDB支持三种行锁定方式InnoDB的默认加锁方式是next-key。如某个加锁操作未使用到索引,则该锁会退化为表锁。行锁 (Record Lock):存在唯一索引中 (包含主键索引),锁定单条索引记录,即key。 间隙锁 (Gap Lock):存在非唯一索引中,锁定索引记录间隙,确保索引记录的间隙不变。 临键锁 (Next-Key Lo.原创 2022-04-13 09:42:50 · 4593 阅读 · 27 评论 -
面试官:MySql在Repeatable Read下面是否会有幻读出现?
针对这个问题,首先我们来看下事务隔离级别可能存在的问题:隔离级别 脏读 不可重复读 幻读 Read Uncommitted (读未提交) 存在 存在 存在 Read Committed (读已提交) - 存在 存在 Repeatable Read (可重复读)默认 - - 存在 Serializable (可串行化)原创 2022-02-11 09:53:54 · 1087 阅读 · 1 评论 -
MySQL进阶 (2):Mysql 索引分类及使用策略
导读提到Mysql的优化,索引优化是必不可少的。添加合适的索引能够让应用的并发能力和抗压能力得到明显的提升。应用性能的瓶颈主要是在"(select)"查询语句。什么是索引?在关系数据库中,索引是一种单独的,物理的对数据库表中一列或多列的值进行排序的一种存储结构。用大白话来讲,就是为了加速对表中的数据行的检索,而创建的一种分散的存储结构。索引的作用?索引就相当于图书的目录,让你查找书中的某篇文章,不用一页一页的去翻找,而是先从目录大纲中寻找关键字标题,快速定位其文章所在.原创 2022-01-05 09:23:56 · 376 阅读 · 0 评论 -
MySQL进阶 (1):explain执行计划和show profile性能分析
前言分析一条查询语句,是否存在可优化的空间,在mysql中,常用2种命令来分析sql语句的执行计划,例如explain、show profiles。两种方式可结合使用。一、explain执行计划MySQL explain执行计划用于分析SQL执行效率,用来辅助SQL优化。下面是一条简单的sql语句,查询所有employees表的记录,利用explain命令,检查该条语句的执行计划参数,如下图,红圈里的title列参数:id含义:包含一组数字,表示查询中执行sel.原创 2022-01-05 09:21:36 · 647 阅读 · 0 评论 -
MySQL进阶 (3):索引的结构优化
什么是索引?在关系数据库中,索引是一种单独的,物理的对数据库表中一列或多列的值进行排序的一种存储结构。用大白话来讲,就是为了加速对表中的数据行的检索,而创建的一种分散的存储结构。索引的目的索引就相当于图书的目录,让你查找书中的某篇文章,不用一页一页的去翻找,而是先从目录大纲中寻找关键字标题,快速定位其文章所在的页码比如,可以把数据库中的 表(table) 当作是一本书,table中一行一行的数据就是书里每篇文章的内容,即row,文章标题可看作是 table 中的 column字段,.原创 2022-05-17 14:51:30 · 320 阅读 · 0 评论 -
MySQL官方示例数据库的使用/导入
导读:本文以employee数据库为例!刚开始图方便,我使用DataGrid图形化界面方式导入sql文件,发现表结构和数据库都创建正常,但是没有数据!!! 没有数据还玩个锤子。。。。。 所以最终本文使用的是命令窗口方式导入的!官网介绍:MySQL :: Other MySQL Documentation步骤一:进入上述官网链接,找到employee数据库,点击GitHub进入下载页步骤二:选择code菜单,点击下载zip压缩文件步骤三:下载好的zip压缩文件,解压打..原创 2021-12-23 14:42:16 · 1022 阅读 · 0 评论 -
MySQL索引结构(1):搞懂二叉树(遍历方式)
二叉树的由来在 jdk1.8 之前,HashMap 的数据结构由「数组+链表」组成,数组是 HashMap 的主体,链表是为了解决 Hash 冲突引入的,正常的数据存放是直接存在数组中,但如果发生 Hash 冲突就会以链表的形式进行存储,而在 jdk1.8之后,当链表的长度超过 8 之后,将会转换成红黑树存储。清楚HashMap八股文的小伙伴应该知道,为何随着版本的迭代会引入不同的数据结构呢?数组 > 链表 > 树✧ 数组优点 缺点 简单易用,随机访问性强原创 2022-05-17 14:53:38 · 1900 阅读 · 0 评论 -
mysql四大事务特性原理拆解——MVCC版本控制..
Mysql事务四大特性◈原子性 (Atomicity) 一个事务中的所有操作,要么全部完成,要么全部不完成!如果事务中某条语句执行失败了,前面已经执行了的语句,会回滚到未执行前的状态,就像这个事务从来没有执行过一样。◈ 一致性 (Consistency)从一个正确状态切换到另一个正确状态,数据库的完整性约束未被破坏事务执行前后都必须处于一致性状态,数据库的完整性约束包括但不限于:实体完整性(如行的主键存在且唯一)、列完整性(如字段的类型、大小、长度要符合要求...原创 2022-02-21 09:24:05 · 607 阅读 · 0 评论 -
面试官:请谈谈MySQL服务器的内部结构
▎MySQL服务器的逻辑架构采用的是分层架构;从整体上重点可以分为Server层和存储引擎层,如图:第一层:处理客户端连接、授权认证等 第二层:服务器层,负责查询语句的解析、优化、缓存以及内置函数的实现、存储过程等 第三层:存储引擎,负责MySQL中数据的存储和提取。整个的执行过程如下:一、连接器每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行!当客户端应用连接到MySQL服务器时,首先接待它的就是连接器。连接器..原创 2021-12-15 16:05:32 · 995 阅读 · 0 评论 -
MySQL存储引擎:InnoDB与MyISAM的区别
存储引擎是数据库的核心,DBMS(数据库管理系统)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。MySQL在5.1之后将InnoDB设为了默认的存储引擎,在5.6支持了全文索引功能。一、查看存储引擎▎查看当前库show engines;✦ 说明:使用上述命令可查看当前数据库支持的存储引擎类型,当前数据库总共支持9种!Support 列的值表示某种引擎是否能使用YES:可以使用 NO:不能使用 DEF.原创 2022-05-17 14:51:53 · 401 阅读 · 0 评论