【Mysql高频面试题整理 一】

2023-11-16

Mysql高频面试题,持续手机更新ing

Mysql–常用的数据库之一

面试一般会问哪些相关的问题呢,今天带大家整理一波,后面持续更新,一点浅见,欢迎各位大佬莅临指导。

Mysql面试高频题有哪些呢

#1. Mysql的存储引擎有哪些,有什么区别?
Mysql作为大家常用的关系数据库,其中也有不同的数据引擎,大家最常用的自然是Innodb,当然还有像Myisam,memory等。
那么Innodb和Myisam这两者之间有什么区别呢?
首先Innodb存在聚族索引,而Myisam是非聚簇索引
Innodb一般数据和索引是放在一起的,而Myisam是分开放的
其次Innodb支持事务的处理,Myisam不支持
Innodb支持外键的数据结构, Myisam并不支持
Innobd支持表级锁和行级锁, 而Myisam仅支持表级锁

#2. MySQL中InnoDB支持的四种事务隔离级别名称?
1、read uncommited :读未提交
2、read committed:读未提交
3、repeatable read:可重复读
4、serializable :串行化
Mysql默认的隔离级别是可重复读。

#3. Mysql使用的是什么索引,有什么好处?
Mysql使用的是B+Tree索引,是一种树形结构的索引,不同常见的hash索引,主要是针对范围查询设计的,通过添加合适的索引增加范围条件查询的效率,避免全表查询。

#4. Mysql有哪几种日志?
MySQL中存在着以下几种日志:重写日志(redo log)、回滚日志(undo log)、二进制日志(bin log)、错误日志(error log)、慢查询日志(slow query log)、一般查询日志(general log)。

【redo log 】是一种基于磁盘的数据结构,用来在MySQL宕机情况下将不完整的事务执行数据纠正,redo日志记录事务执行后的状态。

【undo log】主要用来回滚到某一个版本,是一种逻辑日志。undo log记录的是修改之前的数据,在执行事务回滚的时候,就可以通过undo log中的记录内容并以此进行回滚。

【bin log】日志是用来记录MySQL中增删改时的记录日志。bin log最大的用处就是进行主从复制,以及数据库的恢复。

【error log】主要记录MySQL在启动、关闭或者运行过程中的错误信息。

【slow query log】 慢查询日志用来记录执行时间超过指定阈值的SQL语句,找出慢SQL后可以通过explain关键字进行SQL分析。

【general log 】记录了客户端连接信息以及执行的SQL语句信息。

#5. 什么是Mysql的乐观锁和悲观锁?
1:悲观锁, 就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处理过程中,需要将数据锁定。通常依靠数据库提供的锁机制实现,比如mysql的排他锁,select … for update来实现悲观锁。
2:乐观锁, 就是对数据的处理持乐观态度,乐观的认为数据一般情况下不会发生冲突,只有提交数据更新时,才会对数据是否冲突进行检测。一般是给表加一个版本号或时间戳的字段,读取数据时,将版本号一同读出,数据更新时,将版本号加1。

#6. 什么是ACID?
1、A 原子性:即不可分割性,事务要么全部被执行, 要么就全部不被执行。
2、C 一致性。事务的执行使得数据库从一种正确状态转换成另一种正确状态
3、I 隔离性。在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务。
4、D 持久性。事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存。

#7. 什么是最左匹配原则?
最左优先,以最左边的为起点任何连续的索引都能匹配上。当索引类型为联合索引时,数据库会依据联合索引最左的字段来构建B+树,也叫最左匹配原则。

#8. 什么叫回表?
先根据字段A所在的索引树找到对应主键,然后通过主键索引树查询到所要的记录,这个过程叫做回表查询。回表一般是查询字段有多个,索引数据无法覆盖字段,导致无法在索引数据中取出所有需要的字段数据,所以需要回表查询。

#9. 什么叫覆盖索引?
覆盖索引是一种数据查询方式,不是索引类型,在索引数据结构中,通过索引值可以直接找到要查询字段的值,而不需要通过主键值回表查询,那么就叫覆盖索引,查询的字段被使用到的索引树全部覆盖到。

#10. 什么是共享锁,什么是排他锁
select * from A for update , 这种是排他锁。
select * from A lock in share mode,这是共享锁。
共享锁又称为读锁,简称S锁,共享锁就是指多个事务只能读数据而不能修改数据。(即只读不能改)
排他锁又称为写锁,简称X锁,排他锁是指一个事务在一行数据加上锁后,其它事务不能再对其加锁。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Mysql高频面试题整理 一】 的相关文章

  • 使用 JAXB 编组 LocalDate

    我正在构建一系列链接类 我希望能够将其实例编组到 XML 以便我可以将它们保存到文件中并稍后再次读取它们 目前我使用以下代码作为测试用例 import javax xml bind annotation import javax xml b
  • java中队列的实现

    在 Java 中实现队列是一个非常常见的面试问题 我在网上冲浪 看到了许多实现 他们做了一些奇特的事情 比如实现队列接口和编写自己的addLast and removeFirst 方法 我的问题是我不能使用LinkedList 类并使用其预
  • 从剪贴板获取图像 Awt 与 FX

    最近 我们的 Java FX 应用程序无法再从剪贴板读取图像 例如 用户在 Microsofts Paint 中选择图像的一部分并按复制 我不是在谈论复制的图像文件 它们工作得很好 我很确定它过去已经有效 但我仍然需要验证这一点 尽管如此
  • Maven 目标的默认阶段?

    据我了解 在 Maven 中 插件目标可以附加到生命周期阶段 如果没有定义 默认阶段是什么 根据我的经验 这取决于插件的目标 例如 组装 单个 http maven apache org plugins maven assembly plu
  • 空 EntityManager/EJB 注入 MDB

    我有一个消息驱动 bean MDB 部署到 WebLogic 12 1 3 我尝试使用 PersistenceContext 注释将实体管理器注入 MDB 但实体管理器为空 我还尝试注入一个简单的无状态会话 bean 它也是空的 但是 Me
  • 代码编译期间遇到警告消息“使用或覆盖已弃用的 API”

    我编译了我的程序并收到以下错误 我该如何解决呢 Note ClientThreadClients java uses or overrides a deprecated API Note Recompile with Xlint depre
  • 安全转义表名/列名

    我在 php 中使用 PDO 因此无法使用准备好的语句转义表名或列名 以下是我自己实现它的万无一失的方法 tn str replace REQUEST tn column str replace REQUEST column sql SEL
  • BigDecimal 的 JPA @Size 注释

    我该如何使用 SizeMySQL 的注释DECIMAL x y 列 我在用着BigDecimal 但是当我尝试包括 Size max它不起作用 这是我的代码 Size max 7 2 Column name weight private B
  • JavaFx 中装饰且不可移动的舞台

    我想在 JavaFx 中创建一个装饰舞台 它也将不可移动 我正在从另一个控制器类创建这个阶段 我能够创造和展示舞台 但它是自由移动的 我怎样才能创建这个 非常感谢帮助和建议 我把打开新关卡的方法贴出来 private void addRec
  • 如何在命令提示符中检查 JAVA_OPTS 值?

    我们的应用程序部署 JBoss 服务器然后抛出错误 PermGen space 然后在 jboss bat 和配置文件中设置 permgen 变量中的 java OPTS JAVA OPTs 中是否有值 assige 如何检查 如何在命令提
  • 如何将txt文件添加到你的android项目中? [复制]

    这个问题在这里已经有答案了 我的Android studio版本是1 5 1 显然这个 never 版本没有 txt 文件的 asset 文件夹 您打算如何将这些文件包含到您的项目中 以及如何进一步使用您内部的应用程序 谢谢你的建议 Pro
  • Netty中连接关闭后重新连接的最佳方法是什么

    简单场景 扩展 SimpleChannelUpstreamHandler 的较低级别的类 A 此类是发送消息和接收响应的主力 系统其他部分可以使用顶级类 B 来发送和接收消息 可以模拟同步和异步 此类创建 ClientBootstrap 设
  • 删除 ArrayList 对象问题

    我在处理作业时遇到从 ArrayList 中删除对象的问题 如果我使用 正常 for 循环 它的工作原理如下 public void returnBook String isbn for int i 0 i lt booksBorrowed
  • 膨胀类片段 InflateException 二进制 XML 文件时出错

    我正在使用 Material Design 和 NavigationDrawer 布局等设计我的第一个应用程序 但我遇到了一个问题 该应用程序非常简单 它只显示文本 并且基于 Android Studio 中提供的模板 尝试启动我的应用程序
  • 在 netBeans 中运行程序时,字体看起来非常奇怪

    我在我的新 MacBook M1 上设置了 netBeans 和 SceneBuilder 除了运行程序时的字体外 一切正常 它看起来像这样 我不知道为什么 按钮应显示 Click me 标签应显示 Hello 我收到的错误消息是 M rz
  • 如何将任务添加到 gradle 中的主要“构建”任务

    当我尝试使用以下代码将任务添加到主构建任务时 rootProject tasks getByName build dependsOn mytask 当我跑步时它抱怨gradle w build输出 Where Build file line
  • 如何使用maven创建基于spring的可执行jar?

    我有一个基于 Maven 的 Spring WS 客户端项目 我想将其打包为单个 jar 在eclipse中 一切运行正常 当我尝试将其打包为可执行 jar 时 我收到 ClassNotFound 异常 因为 Spring jar 未包含在
  • 在多线程环境中,Collections.sort 方法有时会抛出 ConcurrentModificationException。列表没有进行结构性修改

    package CollectionsTS import java util ArrayList import java util Collections import java util HashSet import java util
  • TCPDF - 来自 mysql 的打印表显示重复的第一行

    我是 TCPDF 的新手 我面临的小问题是所有输出数据都显示同一行 我的意思是第一条记录重复数据库中存在的总数据 行 的次数 这是我的代码 tbl header
  • 编译时在代码中替换Java静态最终值?

    在java中 假设我有以下内容 fileA java class A public static final int SIZE 100 然后在另一个文件中我使用这个值 fileB java import A class b Object t

随机推荐

  • 数据中台与传统大数据平台有什么区别?_光点科技

    一 数据中台 数据中台是聚合和治理跨域数据 将数据抽象封装成服务 提供给前台以业务价值的逻辑概念 数据中台是在平台概念上的升级 不再单纯的将功能进行大杂烩 理念上 中台有几个特点 第一 更强调数据集中存储 统一管理 提供标准化的服务 第二
  • 【毕业设计】基于springboot + vue微信小程序商城

    目录 前言 创新点 亮点 毕设目录 一 视频展示 二 系统介绍 三 项目地址 四 运行环境 五 设计模块 前台 后台 六 系统功能模块结构图 数据库设计 七 准备阶段 使用真实支付 使用模拟支付 八 使用说明 九 登录后台 十 后台页面展示
  • 前端常用工具库方法整理

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 前言 在闲余的时间整理一份我们可能用到的前端工具库方法 依赖库 名称 cropperjs 图片裁剪 exif js lrz 图片旋转问题 html2canvas d
  • React性能优化(完整版)

    我的博客 http wangxince site my demo markdown React 性能优化 1 减少 render 次数 shouldComponentUpdate PureComponent shouldComponentU
  • 计算机学习三宗罪——计算机达人成长之路(3)(转载自朱云翔老师笔记)

    以计算机学习不可浮躁 只有用心学习 深挖知识 才能基础扎实 才可以深入理解计算机专业知识 从而达到 他强由他强 清风拂山岗 他横由他横 明月照大江 的境界 万变不离其宗 编程程序具有三重境界 同样以VCD播放器为例 第一重境界就如同上面的同
  • 【译】用 `Wasmer` 进行插件开发 1

    译 用 Wasmer 进行插件开发 1 Using Wasmer for Plugins Part 1 译文 原文链接 https wiredforge com blog wasmer plugin pt 1 index html 原文 G
  • 05-BTC-网络

    目录 前言 比特币网络的工作原理 比特币网络 比特币网络中的每一个节点维护一个零度节点的集合 比特币系统中 每个节点要维护一个等待上链的交易的集合 比特币网络的传播属于best effort 前言 学习肖臻老师的 区块链技术与应用 公开课笔
  • vue-element-admin+flask实现数据查询项目

    本文分享一个使用vue element admin flask实现的一个数据查询项目 填写数据库连接信息和查询语句 即可展示查询到的数据 前提 已下载vue element admin并编译成功 前端 1 添加路由 src router i
  • 【Windows共享文件】Java读取Windows环境共享文件夹

    Java读取Windows环境共享文件夹 支持Win10 Win11等版本 1 JCIFS介绍 JCIFS是使用纯Java开发的一个开源框架 通过smb协议访问远程文件夹 该框架同时支持Windows共享文件夹和Linux共享文件夹 不过
  • Java漫谈(二)

    类名 Java编译器的设计与java源代码的语法结构是相辅相成的 先有语法 再有编译器 大家都知道 java是以类为单位进行组织的 类是java对世界的抽象描述 Java程序的运行其实就是多个类之间的相互调用 表现在源码上 java的语法规
  • 【动手学深度学习】关于数据预处理——2.2.5练习 2023.7.12

    创建包含更多行和列的原始数据集 import torch import os os makedirs os path join data exist ok True data file os path join data nba data
  • R-Modeling(step 4)

    I Regression OLSregression Description Function simple linear regression lm Y X1 data polynomial regression lm Y X1 I X
  • Ado.net总结-Command(指挥官)

    Command 概述 在 System Data SqlClient 命名空间下 对应的 Command 类为 SqlCommand 在创建 SqlCommand 实例前必须已经创建了与数据库的连接 SqlCommand 类中常用的构造方法
  • js ajax callback全局,我如何在全局javascript变量中获取Ajax内容

    pastebin代码已经做到了 我猜您实际上面临的问题是存在的 因为您的ajax调用是 异步的 这意味着您正在 异步 发出ajax请求 并立即尝试访问全局变量中的值 但它尚未尚未设定 解决方案是在onReadyStateChange回调中执
  • 如何在EXCEL中运行ChatGPT,从此不再需要记函数

    文章目录 目录 文章目录 序言 如果你可以直接使用chatGPT 如果你不可以直接使用chatGPT 序言 Excel是处理大量数据非常有用的工具 然而 找到并实施正确的公式有时可能是一个复杂和令人沮丧的经历 幸运的是 ChatGPT可以成
  • Linux服务器chattr文件被黑问题解决方法

    木马攻击问题由来阐述 我买了三年的阿里云服务器 在阿里云官网买的 已经使用了一年多了 平时拿来搭建网站 有时也拿来学习技术和开发测试 一直使用很稳定 直到近期我服务器上安装了docker并部署了springboot mysql nginx项
  • 多线程的调度机制

    假设只有一个 CPU 在任意时刻只能执行一条机器指令 每个线程只有获取 CPU 的使用权才能执行指令 多线程并发运行在宏观上看是同时运行 实际上是各个线程轮流获取 CPU 使用权才能执行指令 所谓线 程的调度就是按照特定的机制为多个线程分配
  • MySQL5.7开启通用日志功能

    起因 因项目数据库占用异常 查询数据库有哪些IP地址连接使用 Windows环境下 操作步骤 1 修改MySQL服务的my ini 文件 开启通用查询日志 general log 1 log output FILE general log
  • git format-patch详解

    git format patch详解 打包最近的一个patch git format patch HEAD 有几个 就打包几个patch的内容 或git format patch n 打包版本n1与n2之间的patch git format
  • 【Mysql高频面试题整理 一】

    Mysql高频面试题 持续手机更新ing Mysql 常用的数据库之一 面试一般会问哪些相关的问题呢 今天带大家整理一波 后面持续更新 一点浅见 欢迎各位大佬莅临指导 Mysql面试高频题有哪些呢 1 Mysql的存储引擎有哪些 有什么区别