首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL架构(三)mysql阶段提交

Mysql阶段提交 在 MySQL架构(二)SQL 更新语句是如何执行的?...中说到了 redo log 和 binlog 日志文件,在事务执行过程中,会分个阶段写入这份日志文件中,这也是为了保证份日志之间的一致性,即维护 mysql 的数据一致性。...接下来我们用 MySQL架构(二)SQL 更新语句是如何执行的?中的例子来看看这种方式会存在什么问题。...阶段过程异常崩溃处理 如果在阶段提交的方式下,在 binlog 日志写完,事务在没有 commit 前,即 redo log 日志还没记录 commit 前,mysql 进程发生异常崩溃,MySQL...知道了阶段提交流程后,我们再来看一下异常崩溃后,mysql 是如何恢复数据的。 若 redo log 日志里记录了完整的事务,即已经处于 commit 状态,则直接提交恢复。

10610

关于MySQL varchar类型最大值,原来一直都理解错了

写在前面 关于MySQL varchar字段类型的最大值计算,也许我们一直都理解错误了,本文从问题出发,经实践验证得出一些实用经验,希望对大家的开发工作有些帮助~ 背景描述 最近同事在做技术方案设计时候...那问题来了:MySQL 数据库的varchar字段类型最大存储长度到底是多少?...问题分析 一切以官方文档为准,翻了下官方描述如下: In MySQL 4.1 the length is always 1 byte....大概意思就是说: 在MySQL 4.1以前,长度总是1个字节(varchar(20),指的是20字节) 在MySQL 5.0以后,长度可以是1字节(最多255个字节)或2个字节(256到65535) 按照官网说法最大值是...65535bytes,utf8mb4编码情况下每个字符占4个bytes,最大值应该为16383.75 65535/4=16383.75 实践验证 到此貌似已经有了结论了,但实际情况真的是这样的么?

2K117

MySQL个日志系统

MySQL中有个重要的日志模块,分别是redo log(重做日志)和binlog(归档日志)。...当我们学习MySQL的时候,这部分内容是绕不开的,本文我将来详细的介绍一下这个日志模块,它们在设计上有很多好玩的地方,一些思想也可以在我们工作中使用。...整体来看,分为部分,一部是Server层,主要做的是MySQL功能层面的事情,还有一部分是引擎层,负责存储相关的具体事情。...这个地方为什么要有份日志,还要从最开始的时候MySQL中没有InnoDB引擎说起,当时MySQL自带的引擎是MyISAM,但是M有ISAM没有crash-safe的能力,binlog日志只能用来归档,...种日志主要的不同: redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用 redo log 是物理日志,记录的是“在某个数据页上做了什么修改

67420

MySQL个主要分支

// MySQL个主要分支 // 今天说点儿概念性的东西,关于MySQL个最流行的分支,MariaDB和Percona Server,这个分支其实都有自己的优缺点,这里简单介绍一下分支产生的原因...开始之前,我们首先截取一个当前数据库使用流行度的一个图,来简单分析下这个分支现在的使用情况,图截取自DB-Engine网站: ?...(以下简称MW)主导开发,MariaDB选自她女儿的名字,2008年Sun公司用10亿美金收购了MySQL,但是由于各种原因,Sun公司又将MySQL转手卖给了Oracle,MW感到失去了对MySQL的控制权...在早期,MariaDB还可以作为MySQL的替代品,从MySQL到MariaDB切换应用程序的时候,不需要做任何改动,然后众多原因导致MariaDB这个分支比MySQL官网更新的更快一点,对内核的修改逐渐增多...3、Percona Server,这种数据库不支持跨平台,只支持Linux系统,而前者都支持windows、OS X、Solaris等,这可能也是Percona Server数据库排名靠后的原因吧,但是

1.9K10
领券