mysql45-笔记11 | 怎么给字符串字段加索引?前缀索引对覆盖索引的影响其他方式倒序存储hash 字段。12 | 为什么我的MySQL会“抖”一下?InnoDB 刷脏页的控制策略13 | 为什么表数据删掉一半,表文件大小不变?参数 innodb_file_per_table数据删除流程重建表Online 和 inplace16 | “order by”是怎么工作的?全字段排序rowid
# 深入理解 MySQL —— 从基础到进阶 MySQL 是一种关系型数据库管理系统(RDBMS),它以开源和高性能而被广泛应用于各种规模的应用程序中。本文将全面介绍 MySQL 的基本概念、常用命令及其在应用中的实际操作,并附带代码示例和状态图、类图来帮助理解。 ## MySQL 的基本概念 MySQL 使用结构化查询语言(SQL)进行数据操作,包括筛选、插入、更新和删除数据。下面是一些
原创 12天前
28阅读
目录备库延迟MySQL 5.5版本的并行复制策略(mysql45讲作者自己实现的)按表分发策略按行分发策略MySQL 5.6版本的并行复制策略MariaDB的并行复制策略MySQL 5.7的并行复制策略MySQL 5.7.22的并行复制策略一主多从的切换正确性基于位点的主备切换GTID_MySQL 5.6基于GTID的主备切换GTID和在线DDL读写分离强制走主库方案Sleep 方案判断主备无延迟
07 | 行锁功过:怎么减少行锁对性能的影响二阶段锁协议:在执行某条SQL时加锁,在事务提交后统一释放锁。设置锁等待的超时时间:innodb_lock_wait_timeout,默认情况下是50秒。发起死锁检测,innodb_deadlock_detect设置为on,默认情况下是on,缺点就是会耗费大量的CPU资源(发现死锁后主动回滚某一个事务,让其他事务得以继续执行)。如果你的事务中需要锁多个行
此文为极客时间:MySQL实战45的 3、8、18、19节事务相关部分的总结一、事务的启动方式mysql 主要有两种事务的启动方式: begin 或 start transaction显式启动事务。对应的提交语句是 commit ,回滚是 rollback set autocommit = 0关闭自动提交,然后在执行第一条 sql 的时候启动事务,这个事务会一直持续到你主动 commit 或者
转载 2023-07-02 20:26:55
171阅读
目录基础架构:查询语句执行过程连接器查询缓存分析器优化器执行器日志系统:一条SQL更新语句是如何执行的重要的日志模块:redo log重要的日志模块:binlog两阶段提交事务隔离隔离性与隔离级别事务隔离的实现事务的启动方式索引理论(一)索引的常见模型InnoDB 的索引模型索引维护索引理论(2)覆盖索引最左前缀原则索引下推总结基础架构:查询语句执行过程 MySQL的基本架构示意图
文章目录01 | 基础架构:一条SQL查询语句是如何执行的?连接器查询缓存分析器优化器执行器02 | 日志系统:一条SQL更新语句是如何执行的?redo log(重做日志)redo log的意义binlog(归档日志)更新流程中的两阶段提交为什么两阶段提交好,这个思想的本质是什么03 | 事务隔离:为什么你改了我还看不见?事务的特点,隔离问题以及隔离级别04.5 | 深入浅出索引为什么是B+树B
MySql实战45(一)你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在MySQL内部的执行过程。所以今天我想和你一起把MySQL拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对MySQL有更深入的理解。这样当我们碰到MySQL
第2节 数据库的介绍MySQL:开源免费的数据库,小型的数据库,已经被 Oracle 收购了。 MySQL6.x 版本也开始收费。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购 2.1.2 什么是数据库1) 存储数据的仓库2) 本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。3) 所有的关系型数据库都可以使用通用的 SQL 语句进行管理 DBMS Data
mysql45第一章节主要问题:select * from T where ID = 1;这行数据库查询语句在mysql数据库中的查询过程。首先查看mysql数据库的整体架构MYSQL大致分为Server层和存储引擎层。Server层包括连接器,查询缓存,分析器,优化器,执行器等,包括大多数核心服务功能,以及所有的内置函数,所有的跨存储器的功能在这一层实现,如触发器,视图等。存储引擎层负责数据的
目录系列文章目录前言一、MySQL的基本架构?二、Server层模块解读1.连接器2.查询缓存3.分析器(做什么)4.优化器(怎么做)5.执行器(执行)总结 系列文章目录 第一 01.基础架构:一条SQL查询语句是如何执行的?第二 02.日志系统:一条SQL更新语句是如何执行的?第三 03.事务隔离:为什么你改了我还看不见?......第四十三讲 43
14 | count(*) 这么慢,我该怎么办?InnoDB下count的实现方式是一行一行地读取数据然后累积计数,这也是为什么记录越来越多会导致查询越来越慢。之所以这么设计是因为一行数据可能存在多个版本,InnoDB也无法确定,只能一行一行地获取并判断。InnoDB 是索引组织表,主键索引树的叶子节点是数据,而普通索引树的叶子节点是主键值。所以,普通索引树比主键索引树小很多。对于 count(*
转载 3月前
13阅读
MySQL4501 基础架构:一条SQL查询语句是如何执行的主要介绍 MySQL分为Server层和存储引擎层两部分:Server层包括连接器、查询缓存、分析器、优化器、执行器等存储引擎层负责数据的存储和提取。00 开篇词这一次,让我们一起来搞懂MySQL01 基础架构:一条SQL查询语句是如何执行的 主要讲组件分层,每个组件的大致作用(连接器、查询缓存、分析器、优化器、执行器等)02
转载 8月前
58阅读
# MySQL45笔记 ## 1. 概述 MySQL是一种开源的关系型数据库管理系统,被广泛应用于大型互联网企业和中小型企业的数据存储和管理中。本文将介绍MySQL45中的一些重要知识点和代码示例,帮助读者更好地理解MySQL的基本概念和使用方法。 ## 2. MySQL基本概念 ### 2.1 数据库 数据库是指按照一定的数据模型组织、存储和管理数据的集合。MySQL支持多种数据库
原创 10月前
14阅读
[3. 事务隔离:为什么你改了我还看不见?]基本概念复习:事务的特性:原子性、一致性、隔离性、持久性多事务同时执行的时候,可能会出现的问题:脏读、不可重复读、幻读事务隔离级别:读未提交、读提交、可重复读、串行化 一.Mysql的隔离级别1.读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。(可以读到其他事务未提交的数)2.读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。(
索引维护image.pngB+ 树为了维护索引有序性,在插入新值的时候需要做必要的维护。以上面这个图为例,如果插入新的行 ID 值为 700,则只需要在 R5 的记录后面插入一个新记录。如果新插入的 ID 值为 400,就相对麻烦了,需要逻辑上挪动后面的数据,空出位置。而更糟的情况是,如果 R5 所在的数据页已经满了,根据 B+ 树的算法,这时候需要申请一个新的数据页,然后挪动部分数据过去。这个过
第2节 数据库的介绍MySQL:开源免费的数据库,小型的数据库,已经被 Oracle 收购了。 MySQL6.x 版本也开始收费。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购 2.1.2 什么是数据库1) 存储数据的仓库2) 本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。3) 所有的关系型数据库都可以使用通用的 SQL 语句进行管理 DBMS Dat
一、知识点 未完成 二、参数配置 transaction-isolation: Oracle 数据库的默认隔离级别其实就是“读提交”,从 Oracle 迁移到 MySQL 的应用,为保证数据库隔离级别的一致,你一定要记得将 MySQL 的隔离级别设置为“读提交” binlog_format参数 fo ...
转载 2021-07-02 00:10:00
280阅读
2评论
本文介绍 MyISAM 和 InnoDB 如何执行 count 操作,如果是一个需要使用 count 进行大量计数的场景,应该如何设计实现,以及不同 count 操作的效率。 ...
转载 2021-09-15 21:55:00
142阅读
2评论
本文介绍什么是幻读,幻读存在的问题和解决方式,以及间隙锁带来的困扰。 ...
转载 2021-09-22 11:28:00
148阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5