首页 > 数据库 >mysql(一):基本原理

mysql(一):基本原理

时间:2023-06-02 22:33:33浏览次数:42  
标签:NO Buffer 基本原理 update ZERO mode mysql Pool

Innodb是如何实现事务的

Innodb通过Buffer Pool,LogBuffer,Redo Log,Undo Log来实现事务,以一个update语句为例:

  1. Innodb在收到一个update语句后,会先根据条件找到数据所在的页,并将该页缓存在Buffer Pool中
  2. 执行update语句,修改Buffer Pool中的数据,也就是内存中的数据
  3. 针对update语句生成一个RedoLog对象,并存入LogBuffer中
  4. 针对update语句生成undolog日志,用于事务回滚
  5. 如果事务提交,那么则把Redolog对象进行持久化,后续还有其他机制将Buffer Pool中所修改的数据页持久化到磁盘中
  6. 如果事务回滚,则利用undolog日志进行回滚

零时刻导致flyway执行失败

When run the flyway failed in the history scripts because of the scripts with timestamp having no default value.

Check the local mysql environment —— the sql_mode, delete the NO_ZERO_DATE and NO_ZERO_IN_DATE.

SELECT @@GLOBAL.sql_mode;
SET GLOBAL sql_mode = "XXX";

XXX is the result of select SQL and remove the NO_ZERO_DATE and NO_ZERO_IN_DATE. For example:

SET GLOBAL sql_mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

标签:NO,Buffer,基本原理,update,ZERO,mode,mysql,Pool
From: https://www.cnblogs.com/Bota5ky/p/17453026.html

相关文章

  • Sentinel控制台监控数据持久化到MySQL数据库
    阅读文本大概需要3分钟。    根据官方wiki文档,Sentinel控制台的实时监控数据,默认仅存储5分钟以内的数据。如需持久化,需要定制实现相关接口。https://github.com/alibaba/Sentinel/wiki/在生产环境中使用-Sentinel给出了指导步骤:自行扩展实现MetricsRepository接口;注册成......
  • MySQL复制技术的介绍1
    MySQL是一个非常优秀的开源数据库,也是装机数量最多的数据库之一。少数几台MySQL人工就可以管理了。但当服务器几十、上百台的时候,如果光靠人力维护,这个维护成本就相当高了,如和提高MySQL服务器的可用性这个问题摆在MySQLDBA和系统架构师们面前。你手上这本书讲了一些方法和工具,能够......
  • Docker下安装MySQL
    0x01:Docker安装MySQL下载MySQL镜像dockerpullmysql默认是下载latest标签的mysql,那么版本是多少呢?访问以下链接:https://hub.docker.com/_/mysql/启动MySQL镜像,指定密码为123456,映射目录/home/xxljobwork,指定默认编码为utf-8dockerrun-eMYSQL_ROOT_PASSWORD=123456-p3306......
  • MySQL锁查询与锁释放实操
    1.查询一个数据表中可测试数据SELECT*FROMt_wx_authorizer_infoWHEREservice_id='30127'forupdate;2.实验制造数据库锁,以下语句都先只执行第一条更新语句,然后再执行第二条更新语句的时候就会锁住--第一个事务,只执行第一条更新语句starttransaction;updatet_......
  • idea 爆红com.mysql.jdbc.Driver `com.mysql.cj.jdbc.Driver
    警告Loadingclasscom.mysql.jdbc.Driver'.Thisisdeprecated.Thenewdriverclassiscom.mysql.cj.jdbc.Driver'.ThedriverisautomaticallyregisteredviatheSPIandmanualloadingofthedriverclassisgenerallyunnecessary.2023-06-0218:00:......
  • xtrabackup工具备份与恢复MySQL数据库
    使用Xtrabackup备份和恢复MySQL数据库测试环境信息:centos7.9           Xtrabackup2.4.28             mysql5.7.33             qpress1.1一、使用Xtrabackup备份MySQL数据库1、安装qpress命令yu......
  • MySQL-正则表达式规范
     MySQL中的正则表达式采用的是PCRE的规范,匹配时按字符进行。RLIKE您可以使用RLIKE语句匹配正则表达式,支持的元字符如下表所示。元字符说明^行首。$行尾。.任意字符。*匹配前面的子表达式0次或多次。+匹配前面的子表达式1次或......
  • 3月11日严老师MySQL面试资料 一般有用 看1
    Mysql金三银四面试突击班Lecturer:严镇涛1.Binlog是什么,有什么用?(数据库被人干掉了怎么办?)1.binLog:数据恢复主从复制MySQLServer层也有一个日志文件,叫做binlog,它可以被所有的存储引擎使用。binlog以事件的形式记录了所有的DDL和DML语句(因为它记录的是操作而不是......
  • MySQL中将多行查询结果合并为一行展示SQL语句书写
    写在前面最近开发过程中,遇到一个需求是要将所查询的多条结果汇总成一条结果展示,由于之前没有接触过这方面的业务,所以经过一番折腾之后,解决了需求,这里特此记录一下,以供后续参考!1、问题复现这里以一个例子进行说明:需求:一个员工每月是否完成了打卡,要求统计员工当月完成和未完成......
  • Win11 MySQL 5.7 安装
    Win11MySQL5.7下载MySQLDownload我下载的是5.7.4m14解压解压到你指定的目录这是我解压到的目录D:\App_Install\mysql-5.7设置环境变量在环境PATH添加D:\App_Install\mysql-5.7\bin创建文件在D:\App_Install\mysql-5.7创建my.ini文件......