一 序本文属于极客时间MySQL45讲读书笔记系列。 本文老师主要是用来答疑,关于日志与索引相关问题。二 日志相关问题 在第二篇 mysql45讲 2一条SQL更新语句是如何执行的 讲到binlog(归档日志)和redo log(重做日志)配合崩溃恢复的时候,用的是反证法,说明了如果没有两阶段提交,会导致MySQL出现主备数据不一致等问题。在两阶段提交
转载
2024-01-12 07:43:17
37阅读
03 | 事务隔离:为什么你改了我还看不见事务的特性:ACID,即对应原子性、一致性、隔离性、持久性。通过undo log来保证原子性,能够撤销事务内的所以操作来保证原子性,要么是全部都成功,通过redo log来保证持久性,会根据策略进行刷脏,通过锁+MVCC的方式来保证隔离性,而一致性指的是从一个正确的状态迁移到另外一个正确的状态下,其实就是通过事务中的AID来保证C。并发事务可能出现的问题:
转载
2024-06-23 23:22:57
40阅读
mysql45讲第一章节主要问题:select * from T where ID = 1;这行数据库查询语句在mysql数据库中的查询过程。首先查看mysql数据库的整体架构MYSQL大致分为Server层和存储引擎层。Server层包括连接器,查询缓存,分析器,优化器,执行器等,包括大多数核心服务功能,以及所有的内置函数,所有的跨存储器的功能在这一层实现,如触发器,视图等。存储引擎层负责数据的
转载
2023-12-15 15:26:32
57阅读
目录备库延迟MySQL 5.5版本的并行复制策略(mysql45讲作者自己实现的)按表分发策略按行分发策略MySQL 5.6版本的并行复制策略MariaDB的并行复制策略MySQL 5.7的并行复制策略MySQL 5.7.22的并行复制策略一主多从的切换正确性基于位点的主备切换GTID_MySQL 5.6基于GTID的主备切换GTID和在线DDL读写分离强制走主库方案Sleep 方案判断主备无延迟
转载
2023-11-29 11:39:27
104阅读
此文为极客时间:MySQL实战45讲的 3、8、18、19节事务相关部分的总结一、事务的启动方式mysql 主要有两种事务的启动方式:
begin 或 start transaction显式启动事务。对应的提交语句是 commit ,回滚是 rollback
set autocommit = 0关闭自动提交,然后在执行第一条 sql 的时候启动事务,这个事务会一直持续到你主动 commit 或者
转载
2023-07-02 20:26:55
180阅读
mysql45讲-笔记11 | 怎么给字符串字段加索引?前缀索引对覆盖索引的影响其他方式倒序存储hash 字段。12 | 为什么我的MySQL会“抖”一下?InnoDB 刷脏页的控制策略13 | 为什么表数据删掉一半,表文件大小不变?参数 innodb_file_per_table数据删除流程重建表Online 和 inplace16 | “order by”是怎么工作的?全字段排序rowid
转载
2023-12-16 14:25:50
73阅读
MySQL4501 讲基础架构:一条SQL查询语句是如何执行的主要介绍
MySQL分为Server层和存储引擎层两部分:Server层包括连接器、查询缓存、分析器、优化器、执行器等存储引擎层负责数据的存储和提取。00 开篇词讲这一次,让我们一起来搞懂MySQL01 讲基础架构:一条SQL查询语句是如何执行的
主要讲组件分层,每个组件的大致作用(连接器、查询缓存、分析器、优化器、执行器等)02 讲日
转载
2024-01-26 17:37:49
66阅读
文章目录01 | 基础架构:一条SQL查询语句是如何执行的?连接器查询缓存分析器优化器执行器02 | 日志系统:一条SQL更新语句是如何执行的?redo log(重做日志)redo log的意义binlog(归档日志)更新流程中的两阶段提交为什么两阶段提交好,这个思想的本质是什么03 | 事务隔离:为什么你改了我还看不见?事务的特点,隔离问题以及隔离级别04.5 | 深入浅出索引为什么是B+树B
转载
2023-11-06 21:47:46
70阅读
MySql实战45讲(一)你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在MySQL内部的执行过程。所以今天我想和你一起把MySQL拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对MySQL有更深入的理解。这样当我们碰到MySQL
转载
2023-11-06 23:20:47
164阅读
MySQL实战45讲这是专栏的第一篇文章,我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:mysql> select * from T wher
转载
2021-05-08 11:55:53
678阅读
2评论
学习
原创
2021-07-13 11:41:29
760阅读
源码安装完MySQL之后,使用Debug模式启动mysqld --debug --console &后,mysql> create database wxb;Query OK, 1 row affected (0.01 sec)mysql> use wxb;Database changedmysql
原创
2022-08-20 00:20:27
269阅读
这个专栏是数据库大神、前阿里资深技术专家丁奇写的,
原创
2021-07-13 11:05:02
1060阅读
阅读
原创
2022-08-03 06:51:14
50阅读
本系列笔记学习MySQL 45讲,思维导图来源网络,侵删。总览图1.sql执行过程先查询缓存一般不建议使用查询缓存,因为一个表的更新会导致这个表的缓存结果失效,重复的建立缓存并不是高效的使用办法。除非这个表不会经常变动,如系统配置表query_cache_type=demand, 默认的都不使用查询缓存 使用查询缓存: SQL_CACHE显式指定没命中缓存会去执行语句分析器做词法分析(分析每个字符
转载
2024-10-21 18:35:14
12阅读
mysql_connect — 打开一个到 MySQL 服务器的连接。or 即或者 如果or前面的代码执行失败,或者返回false,0,null,那么执行or到其后第一个分号前面的代码;如果or前面的代码执行成功,或者返回true,非0,非null,那么不执行or到其后第一个分号前面的代码。mysql_error—返回上一个 MySQL 操作产生的文本错误信息。返回上一个 MySQL 函数的错误
第2节 数据库的介绍MySQL:开源免费的数据库,小型的数据库,已经被 Oracle 收购了。 MySQL6.x 版本也开始收费。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购
2.1.2 什么是数据库1) 存储数据的仓库2) 本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。3) 所有的关系型数据库都可以使用通用的 SQL 语句进行管理 DBMS Dat
转载
2024-06-16 17:50:49
27阅读
《MySQL实战45讲》学习记录(持续更新)1 | MySQL 中一条查询语句的执行过程2 | MySQL 中一条更新语句的执行过程事务索引浅析锁:全局锁、表级锁、行级锁事务到底是隔离的还是不隔离的?普通索引和唯一索引的异同MySQL为什么有时候会选错索引?怎么给字符串字段加索引?MySQL “抖”一下为什么表数据删掉一半,表文件大小不变?count(*)15 | 答疑文章(1)16 | "Or
转载
2023-12-07 18:26:25
131阅读
MySQL实战45讲是极客时间的丁奇老师的一门课程,从本文章开始我将记录此课程每讲的学习笔记。 基础架构:一条SQL查询语句是如何执行的?1、MySQL的基本架构示意图MySQL的基本架构示意图如下,该图描述了SQL语句在MySQL的各个功能模块的执行过程。 大体来说,MySQL可以分为Server层和存储引擎层。Server层涵盖MySQL的大多数核心服务功能,以及所有内置函数(如日期、时间、数
转载
2023-12-18 23:54:44
125阅读
? 本文目录? 01 | 基础架构:一条SQL查询语句是如何执行的?? MySQL 的基础架构? Server 层? 存储引擎 层? 连接器? 问题:如果全部使用长连接,有时MySQL占用内存会涨的过快,其原因是?以及解决措施方案?? 查询缓存? 问题:大多数情况下建议不要使用查询缓存,为什么?? 分析器? 优化器? 问题:优化器的优化原则是什么?? 执行器? 没有索引时的执行过程? 存在索引时
转载
2023-12-17 21:06:42
40阅读