Java面试-MySQL事务专题

news2024/11/15 17:50:54

链接:https://pan.baidu.com/s/1mw4sej8BzdHNCkaib4ebeg 
提取码:j2qu

1 事务的四个特点是什么?他们是如何实现的?

ACID-原子性、一致性、隔离性和持久性。

ACID原理
原子性undolog
一致性通过其他三个特性来实现的
隔离性锁+MVCC
持久性redolog

2 MySQL的常见日志分别有什么作用?

binlog:保证多台MySQL服务器数据的一致性

errorlog:错误日志

slowlog:慢查询日志

relaylog:中继日志

作用:在进行主从同步的过程中master节点将DML的相关操作记录在binlog中,然后通过IO Thread线程将信息更新到slave节点的relaylog日志中,在slave节点中通过SQL Thread线程读取relaylog中的日志保证master和slave节点数据一致。

undolog:回滚日志-保证一致性--记录历史版本的数据

作用:用于MySQL数据库的事务回滚

当需要回滚时候,直接调用历史版本的数据,然后进行回滚。

redolog:前滚日志-解决持久性问题,将数据从内存写入到磁盘中。

可以将随机IO改善为顺序IO。又称预写日志。

 

binlog、errorlog、slowlog和relaylog归属server层

undolg和redolog归属存储引擎层。

3 什么是二阶段提交,如何保证宕机时数据的一致性?

二阶段提交问题:解决的是主从同步时,当redolog和binlog日志同时存在时先写谁后写谁?

如果先写binlog日志,主从节点都记录了binlog日志后,主节点回滚了,从节点却没有回滚,那么就出现了主从节点数据的不一致性。

 

如果先写redolog日志 +1操作,在binlog还没有写的时候,主节点断电了。将主节点的binlog同步到了从节点,这时候出现了数据不一致性。

二阶段提交:在redolog设置一个标记位。

先写redolog此时为prepare状态,然后在写binlog,binlog写完后,将redolog状态改为commit状态。

 

4 MVCC如何实现多版本并发控制?如何解决读写冲突问题?

MVCC:多版本并发控制,是为了解决并发读写问题存在的。

如何解决呢?使用下面三部分

  • 隐藏字段

  • undolog

记录历史状态数据:会形成一个链表,链首表示最新的旧记录,链尾表示最旧的旧记录

 

  • readview:表示事务进行快照读操作的时候产生的读视图,有三个字段。

 ​​​​​​​​​​​​​​

 注意:

在RC隔离级别的时候,每一次进行快照读都会生成新的ReadView。

在RR隔离级别的时候,只有第一次快照读会生成readView,其余都是沿用第一次快照读生成的readView

 5 MySQL中的幻读是什么?如何解决幻读问题?

幻读就是:在一个事务中,当前读和快照读一起使用才会造成幻读现象。

最后只能加锁解决幻读问题了,详见《 MySQL进阶-锁机制详解》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java计算机毕业设计ssm校园志愿者服务系统u7thd(附源码、数据库)

java计算机毕业设计ssm校园志愿者服务系统u7thd(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xf…

初学者必刷题---PTA基础编程题目集第一期

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​ 📣系列专栏:初学者必刷题—鹏哥推荐 💬总结:希望…

STC 51单片机62—— Proteus仿真多位数码管稳定显示 不抖动

#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int //uchar code dis_code[]{0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9}; //共阳数码管段码表 //共阴字形码表【实验】数码管实验时&#xff0c;一定要将点阵模块跳…

玩转系统|如何Windows Update自动更新

目录 为什么要关闭Windows自动更新&#xff1f; 1、防止在工作时间突然中断计算机。 2、应用程序兼容性变差。 可能会导致系统损坏。 关闭Windows自动更新的几种方法&#xff01; 方法一&#xff1a;通过Windows设置关闭Windows自动更新 方法二&#xff1a;通过组策略编…

如何查看浏览器页面缓存内容(代码控制台)【详细教程】

如何查看浏览器页面缓存内容——代码&控制台知识调用前言引入控制台输入代码查看在控制台application查看知识调用 文章可能需要用到的知识&#x1f525;&#x1f525;&#x1f525;浏览器缓存有哪些&#xff08;通用缓存有哪些&#xff09; 前言引入 浏览器有多种缓存&a…

密码重置、API调用、远程命令,Zabbix用户必知的几个技巧

作者&#xff1a;张思德&#xff0c;Zabbix社区签约专家&#xff0c;2017-2022Zabbix中国峰会讲师 前言 Zabbix版本迭代很快&#xff0c;而且每个版本都会有很多新特性&#xff0c;有时有一个不起眼的小的更新却造成很多老司机翻车&#xff0c;以下主要介绍Zabbix几个常见的知识…

3.1.1 积分和微分放大器

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

ADI Blackfin DSP处理器-BF533的开发详解8:Timer定时器的驱动和应用(含源代码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 接口功能介绍 ADSP-BF53x 上有 3 个通用定时器&#xff0c;每个定时器有三种模式&#xff1a; 脉冲宽度调制模式&#xff08;PWM_OUT&#xff0…

【信号处理】基于遗传算法的噪声图像的边缘检测(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 图像的边缘是指图像灰度急剧发生变化的不连续的地方&#xff0c;主要存在于目标和目标、背景和目标、不同色彩的区域之间&#…

最新版SwitchHosts下载安装教程

文章目录前言一、SwitchHosts下载1.第一步2.第二步二、常见问题前言 SwitchHosts开源免费&#xff0c;社区稳定维护&#xff0c;特别香~ 一、SwitchHosts下载 https://github.com/oldj/SwitchHosts 1.第一步 打开上面的官网&#xff0c;之后往下面滑动&#xff0c;看到Swit…

Centos7 部署 VerneMQ 高可用集群

1.简要说明 1.1概述 VerneMQ首先是一个MQTT发布/订阅消息代理&#xff0c;它实现了OASIS行业标准MQTT协议&#xff1b;但是&#xff0c;VerneMQ还旨在通过提供一组与可扩展性&#xff0c;可靠性和高性能以及操作简单性相关的独特功能&#xff0c;将消息传递和物联网应用程序提…

Dynamics 365Online 应用内消息通知(In-app notifications)

应用内通知其实一直是个刚需&#xff0c;但D365一直缺乏这个功能&#xff0c;如果客户有需求&#xff0c;我们只有通过自定义的方式实现&#xff0c;好在V9以后顶部栏可以自定义了&#xff0c;可以自己加Icon&#xff0c;实现通知的样式。 好在2022WAV1后&#xff0c;D365终于加…

喜讯丨上海首家代谢组学技术研究民非机构-上海百趣代谢组学技术研究中心获批成立

经上海市科学技术委员会批复同意组建&#xff0c;由上海市民政局审批&#xff0c;上海百趣代谢组学技术研究中心正式成立。上海百趣代谢组学技术研究中心将联合科研单位、相关企业&#xff0c;共同推动代谢组学技术研究在检测方法、分析方法、检测仪器和数据库标准化方面的进步…

景联文科技:一文详解!如何选择一家专业的数据标注公司?

“近年来&#xff0c;人工智能发展速度迅速&#xff0c;三大决定性因素是&#xff1a;算法、算力和数据&#xff0c;数据是人工智能的基础。数据标注的精确度是行业内的一大重点&#xff0c;随着人工智能技术的不断成熟&#xff0c;对场景化数据的精确度要求将越来越高&#xf…

[附源码]Python计算机毕业设计Django游戏论坛网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

ChatGPT能否取代Google、Baidu,成为下一代搜索引擎?一文了解最近火出圈的ChatGPT

前 言 OpenAI这家公司又放大招了&#xff0c;继发布GPT、GPT2和GPT3模型后&#xff0c;本月初发布了ChatGPT模型【也被称为GPT3.5】&#xff0c;结合大家的测试效果来看&#xff0c;该模型效果确实很震撼&#xff0c;在人工智能圈子引起了不小的轰动。在AI发展相对处于低谷期的…

华为机试 - 机器人

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 现有一个机器人&#xff0c;可放置于 M N 的网格中任意位置&#xff0c;每个网格包含一个非负整数编号&#xff0c;当相邻网格的数字编号差值的绝对值小于等于 1 时&#xff0c;机器人可以在网格间移…

原生API编写简单富文本编辑器002

原生API编写简单富文本编辑器002 1. 为功能按钮添加点击事件 我们在index.js 中为所有功能按钮添加点击事件监听&#xff0c;在点击对应按钮时执行相应的原生命令。 window.onload function() {const btns document.getElementById(editorBar).getElementsByTagName(li);fo…

centos7安装xfce桌面后,桌面空白,只有openbox功能,解决办法

因为有openbox和图标桌面 两个模式 在登录时,输入密码,下一步,旁边<齿轮按钮>,选择 图标桌面,再登录 前期centos7安装xfce步骤 yum update yum install epel-release -y yum groupinstall -y “X Window system” yum grouplist //查看是否有xfce yum groupinstall -y …

ClickHouse在自助行为分析场景的实践应用

导读 公司每日产生海量数据&#xff0c;按业务需要进行统计产出各类分析报表&#xff0c;但巨大的数据量加上复杂的数据模型&#xff0c;以及个性化的分析维度&#xff0c;采用传统的离线预计算方式难以灵活支持&#xff0c;为此需引入一种满足实时多维分析场景的计算引擎框架…