06 | 全局锁和表锁:给表加个字段怎么有这么多阻碍全局锁:对整个数据库实例加读锁,命令是Flush tables with read lock,使用这个命令后其他线程的增删改、修改表结构、建表将会被阻塞(使用unlock tables可以解除)。主要用来做全局备份。为什么使用全局锁而不要使用全库只读(set global readonly = true):一方面是readonly通常会被用来做其
转载 2024-01-14 21:06:16
103阅读
[3. 事务隔离:为什么你改了我还看不见?]基本概念复习:事务的特性:原子性、一致性、隔离性、持久性多事务同时执行的时候,可能会出现的问题:脏读、不可重复读、幻读事务隔离级别:读未提交、读提交、可重复读、串行化 一.Mysql的隔离级别1.读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。(可以读到其他事务未提交的数)2.读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。(
1.基础架构:一条sql查询语句是如何执行的?mysql> select * from T where ID=10;.基础架构:一条sql更新语句是如何执行的?mysql> update T set c=c+1 where ID=2; redo log(1)存储引擎的日志,InnoDB特有的;(2)物理日志(3)循环写,空间固定会用完;binlog (1)server端日志,
转载 2023-12-11 20:39:01
1115阅读
07 | 行锁功过:怎么减少行锁对性能的影响二阶段锁协议:在执行某条SQL时加锁,在事务提交后统一释放锁。设置锁等待的超时时间:innodb_lock_wait_timeout,默认情况下是50秒。发起死锁检测,innodb_deadlock_detect设置为on,默认情况下是on,缺点就是会耗费大量的CPU资源(发现死锁后主动回滚某一个事务,让其他事务得以继续执行)。如果你的事务中需要锁多个行
转载 2023-10-12 06:43:36
193阅读
05 | 深入浅出索引(下)覆盖索引:如果查找的列本身就在二级索引上,那么就不要回表了,这样子的索引叫做覆盖索引,通常用来减少回表的次数以提高性能。联合索引:使用多个字段组合的索引,假设有联合索引(a,b),那么在索引树中它会先根据a的大小进行排序,如果有相同值的a在按照b的大小进行排序。最左前缀:可以是联合索引的最左N个字段,比如说有联合索引(a,b,c),那么等值查询条件是a = 1的时候会用
转载 2024-01-08 15:45:07
65阅读
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这 100 块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这
01 | 基础架构:一条SQL查询语句是如何执行的?MySQL架构图左侧图是老师原本的图,右侧是个人理解所画的,按照在文中的理论来说,个人认为应该是先查询缓存,如果查不到才会进行词法分析,比如有一条SQL:select * from T where ID = 10;,先去缓存中以该条SQL为key开始查询缓存,如果没查询到才会开始解析该SQL,通过select关键词分析可以知道该条SQL是要做
转载 2023-12-01 11:20:05
125阅读
23 | MySQL是怎么保证数据不丢失的?事务执行过程中,先把日志写到binlog cache,事务提交的时候,再把binlog cache写到binlog文件中。每一个线程都会分配一个binlog cache,由参数binlog_cache_size控制单个线程内binlog cache的大小,如果超过了这个参数规定的大小,那么就会暂存到磁盘的临时空间中。在事务提价后,会清空binlog ca
转载 2024-04-22 15:01:03
86阅读
        如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。    &nbsp
转载 2024-07-25 16:38:11
107阅读
最近有新闻说""炒股失败欠债,赶紧去极客时间买了他的《MySQL 实战 45 》以防下架,顺带重新系统的复习下MYSQL相关知识,记录下学习笔记;本篇介绍:MySQL基本架构;MySQL的日志系统、redo log两阶段提交;一致性读、事务隔离及实现等;Day01——基础架构:一条SQL查询语句是如何执行的?1. MySQL 的基本架构示意图MySQL架构可以分为Server层和存储引擎层两
索引维护image.pngB+ 树为了维护索引有序性,在插入新值的时候需要做必要的维护。以上面这个图为例,如果插入新的行 ID 值为 700,则只需要在 R5 的记录后面插入一个新记录。如果新插入的 ID 值为 400,就相对麻烦了,需要逻辑上挪动后面的数据,空出位置。而更糟的情况是,如果 R5 所在的数据页已经满了,根据 B+ 树的算法,这时候需要申请一个新的数据页,然后挪动部分数据过去。这个过
在这篇博文中,我将分享我的经历,探讨如何解决“mysql实战45”中遇到的问题,并提供详细的步骤指导。接下来,我会通过多个板块深入分析整个过程,确保你在实现过程中不再迷茫。 ### 环境准备 在开始之前,我们需要确保有一个干净的环境来执行我们的操作。请按以下要求进行安装: | 组件 | 版本 | 兼容性 | |-----------
原创 7月前
32阅读
``` # MySQL实战45 :环境准备与配置详解 本文将详细记录关于“mysql实战45 ”的问题解决过程,涵盖环境准备、分步指南、配置详解、验证测试、排错指南和扩展应用等模块,形成一篇完整的参考文献。 ## 环境准备 在进行MySQL相关项目之前,确保你的硬件和软件环境符合以下要求: ### 软硬件要求 - **操作系统**: Ubuntu 20.04 / CentOS
原创 6月前
10阅读
        在深入MySQL之前, 不妨分析一下如下的sql语句是如何在MySQL执行的呢?        select * from t where id = 10         
转载 2024-01-14 10:55:46
78阅读
课程内容1.基础架构:一条SQL查询语句是如何执行的?首先我们在学习Mysql的时候,一开始是不会学习很深的原理的都是先学习操作。比如下面这条SQL查询语句。mysql> select * from T where ID=10;可以知道我们是查询当ID=10时所有字段的内容。但现在我们要把 MySQL 拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,能够对 MySQL 有更深入的理
转载 2024-01-29 10:33:53
56阅读
1点赞
1评论
务的特性:原子性、一致性、隔离性、持久性多事务同时执行的时候,可能会出现的问题:脏读、不可重复读、幻读事务隔离级别:读未提交、读提交、可重复读、串行化不同事务隔离级别的区别: 4.1 读未提交:一个事务还未提交,它所做的变更就可以被别的事务看到 4.2 读提交:一个事务提交之后,它所做的变更才可以被别的事务看到 4.3 可重复读:一个事务执行过程中看到的数据是一致的。未提交的更改对其他事务是不可见
03 | 事务隔离:为什么你改了我还看不见事务的特性:ACID,即对应原子性、一致性、隔离性、持久性。通过undo log来保证原子性,能够撤销事务内的所以操作来保证原子性,要么是全部都成功,通过redo log来保证持久性,会根据策略进行刷脏,通过锁+MVCC的方式来保证隔离性,而一致性指的是从一个正确的状态迁移到另外一个正确的状态下,其实就是通过事务中的AID来保证C。并发事务可能出现的问题:
《沉淀》是云栖社区品牌栏目,在品味技术人百味人生的同时,也能够帮助你沉淀技术,获得点拨。工作中,如果有不错的大牛让你受益匪浅,也欢迎通过电子邮件(lose.zy@alibaba-inc.com)推荐采访,让更多人受益。我们的想法是:“如果你觉得某个技术挺棒的,不妨品味这些技术人背后的沉淀。” 认为,MySQL设计简单,非常适合初创公司使用 (真
转载 2023-12-18 13:13:36
100阅读
16 | order by 是怎么工作的?Extra字段中显示Using filesort表示需要排序。MySQL会给每个线程分配一块内存用于排序,称为sort_buffer,将满足条件的记录放入到该缓冲区中,然后根据指定字段排序。排序这个动作,可能在内存中完成,也可能需要使用外部排序,这取决于排序所需的内存和参数sort_buffer_size。sort_buffer_size是MySQL为排序
之前,你大概都是通过搜索别人的经验来解决问题。如果能够理解MySQL的工作原理,那么在遇到问题的时候,是不是就能更快地直戳问题的本质?以实战中的常见问题为切入点,带你剖析现象背后的本质原因。为你串起各个零散的知识点,再由线到面带你构建MySQL知识体系。旨在给你一个从理论到实战的系统性指导,让你少走弯路,彻底搞懂MySQL。  林晓斌,网名,前阿里资深技术专家。作为活跃的MySQL社区贡献者,
转载 2021-04-02 13:34:11
579阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5