java面试一日一题:讲下mysql中的锁
问题:请讲下在mysql中的锁
分析:该问题主要考察对中锁的掌握,主要考察的是读、写锁、行锁、间隙锁、next-key,其他还有表锁、意向锁
回答要点:
主要从以下几点去考虑,
1、mysql中的锁有哪些?
2、每种锁的使用场景?
mysql中的锁主要有读写锁、行锁、间隙锁、next-key
读锁
读锁,又叫共享锁,简称S锁,用在读操作上,事务A对数据加上了S锁,那么事务A只能进行读操作,其他事务包括A不能再对数据加X锁,但是可以加S锁;
例,select ... in share mode
写锁
写锁,又叫排他锁,简称X锁,用在写操作上,事务A对数据加了X锁,那么事务A可以对数据进行读取和更新操作,其他线程不能对数据加S锁或X锁,也就是说X锁是排他的,这里的排他是其他的任何锁;
例,select .... for update
行锁
在mysql中读写锁都是行锁,通俗点讲就是锁住的是数据行,这点区别于myIsam的表锁,锁住整个表。innodb下的行锁是通过锁住索引上的索引项来实现的,如果没有索引则锁住每行隐藏的ID
间隙锁
间隙锁,顾名思义,就是锁住的一个范围,间隙锁也是行锁的一种,所以锁定的也是索引项中间的间隙;
next-key锁
next-key就是行锁+间隙锁,也就是锁住记录和它前面的间隙,例,select * from t where id<=7 id的值有1 2 7则(2,7]这就是一个next-key
mysql这种行锁的特点意味着如果查询条件中不走索引,那么innodb将对所有的记录加锁,实际效果跟锁表是一样的(不是表锁)
读写锁主要用在事务的隔离级别上,通过设置读写锁可以实现数据的隔离;
next-key则是用在隔离级别为可重复读下,用来解决幻读;

java面试一日一题:讲下mysql中的锁的更多相关文章
- java面试一日一题:讲下mysql中的undolog
问题:请讲下mysql中undo log的作用 分析:mysql中有很多日志,例,bin log undo log redo log,要弄清楚这些日志的作用,就要了解这些日志出现的背景及要解决的问题: ...
- java面试一日一题:讲下mysql中的索引
问题:请讲下mysql中的索引 分析:mysql中有很多索引,要对对这些索引有所掌握,还要弄清楚每种索引的本质? 回答要点: 主要从以下几点去考虑 1.索引的本质是什么 2.mysql的索引分类: 3 ...
- java面试一日一题:讲下在什么情况下会发生类加载
问题:请讲下在什么情况下会发生类加载? 分析:该问题主要考察对java中类加载的知识,什么是类加载,为什么会发生类加载,什么情况下发生类加载? 回答要点: 主要从以下几点去考虑 1.什么是类加载: 2 ...
- java面试一日一题:mysql中常用的存储引擎有哪些?
问题:请讲下mysql中常用的引擎有哪些? 分析:该问题主要考察对mysql存储引擎的理解,及区别是什么? 回答要点: 主要从以下几点去考虑, 1.mysql的存储引擎的基本概念? 2.mysql中常 ...
- java面试一日一题:mysql中的自增主键
问题:请讲下mysql中的自增主键 分析:该问题主要考察对mysql中自增主键的掌握,使用场景及如何设置 回答要点: 主要从以下几点去考虑 1.什么自增主键 2.使用场景是什么: 3.innodb_a ...
- java面试一日一题:java中垃圾回收算法有哪些
问题:请讲下在java中有哪些垃圾回收算法 分析:该问题主要考察对java中垃圾回收的算法以及使用场景 回答要点: 主要从以下几点去考虑, 1.GC回收算法有哪些 2.每种算法的使用场景 3.基于垃圾 ...
- java面试一日一题:java中的垃圾回收器
问题:请讲下java中垃圾回收器有哪些? 分析:该问题主要考察hotspot虚拟机下实现的垃圾回收器 回答要点: 主要从以下几点去考虑, 1.垃圾回收器的种类 2.每种垃圾回收器的着重点是什么 前边的 ...
- java面试一日一题:binlog undolog redolog的区别
问题:请讲下mysql中binlog.undolog.redolog三种日志的区别 分析:mysql中这三种日志很常见,也是面试中涉及比较多的方面,要理解清楚这三种日志的定位及区别: 回答要点: 主要 ...
- java面试一日一题:请讲下对mysql的理解
问题:请讲下对mysql的理解 分析:该问题主要考察对mysql的理解,基本概念及sql的执行流程 回答要点: 主要从以下几点去考虑, 1.mysql的整体架构? 2.mysql中每一个组件的作用? ...
- java面试一日一题:mysql事务是如何实现的
问题:请讲下mysql的事务是如何实现的 分析:该问题主要考察对事务的理解及实现方式: 回答要点: 主要从以下几点去考虑, 1.对事务的概念的理解? 2.事务的实现方式? 讲到mysql的事务,很快可 ...
随机推荐
- Android 12(S) MultiMedia Learning(七)NuPlayer GenericSource
本节来看一下NuPlayer Source中的GenericSource,GenericSource主要是用来播放本地视频的,接下来着重来看以下5个方法: prepare,start,pause,se ...
- harbor 构建企业级镜像仓库
安装harbor 构建企业级镜像仓库 Harbor是由VMware公司开源的镜像仓库,harbor是在docker Registry上进行了企业级扩展,从而获得了更广泛的应用,这些新的企业级特性包括: ...
- IMX6ULL基本环境搭建
基本环境搭建 1 交叉编译工具 在虚拟机中安装交叉编译工具,为后续开发做准备. 1.1 工具版本 工具版本:Linaro Releases 当前虚拟机为64位系统,因此下载64位系统的工具: $ un ...
- 《python核心编程《第二版》》笔记章节索引
本文章作为我的其它一系列关于<python核心编程<第二版>>的笔记的文章索引. 第一章:Python-快速入门:https://www.cnblogs.com/mrlayfo ...
- C# .NET 拉卡拉支付接口解析 付款码支付 条码支付
C# .NET 拉卡拉支付接口解析 付款码支付 条码支付 被扫 反扫 刷卡支付 B扫C. 简要: 1.测试环境给的私钥是PKCS8.签名用. 2.CRT证书用X509Certificate2 读取出 ...
- Fedora升级33->34
Fedora升级33->34 1. dnf --refresh upgrade 2. dnf install dnf-plugin-system-upgrade --best 3. ...
- 移动web开发入门
一,视口 <meta name="viewport" content="width=device-width, initial-scale=1, user-scal ...
- ZYNQ Linux使用SPI驱动
--- title: ZYNQ Linux使用SPI驱动 EntryName: xilinx-zynq-using-spi-driver-in-linux date: 2020-10-14 10:02 ...
- python基础-元组tuple( )
元组的定义和操作 元组的特性: 元素数量 支持多个 元素类型 任意 下标索引 支持 重复元素 支持 可修改性 不支持 数据有序 是 使用场景 不可修改.可重复的 一批数据记录场景 # 定义元组 ...
- C#/.NET/.NET Core优秀项目和框架2024年6月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍.功能特点.使用方式以及部分功能截图 ...