文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 七】MySQL数据库事务及锁机制(下)

提出问题可重复读级别下,事务中读取的数据在整个事务过程中都是一致的,那么别的事务更新了数据,当前事务再去更新数据的时候,看到的是更新后的,还是更新前的?举个例子,初始插入值为insert into t(id, k) values(1,1),(2,2);需要注意,begin/start transaction 命令并不是一个事务的起点,在执行到它们之后的第一个操作 InnoDB 表的语句,事务才真....

【MySQL数据库原理 七】MySQL数据库事务及锁机制(下)
文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 七】MySQL数据库事务及锁机制(中)

MySQL的锁机制数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构针对不同的分类尺度进行分类,根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类,同时依据锁是否可以被共享又有读写锁的区别:读写锁表级锁和行级锁可以进一步划分为共享锁(s)和排他锁(X),在另一个维度上交....

【MySQL数据库原理 七】MySQL数据库事务及锁机制(中)
文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 七】MySQL数据库事务及锁机制(上)

事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位事务体现出整体的概念,要么事务中的操作全部成功,要么全部失败体现在数据库sql里就是逻辑上相互依赖的一组sql语句。在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引....

【MySQL数据库原理 七】MySQL数据库事务及锁机制(上)
文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 六】MySQL数据库索引(下)

B+Tree适用场景我们这里比较下Hash索引和B+树的区别,有序数组暂不讨论。由于 Hash 索引比较的是进行 Hash 运算之后的 Hash 值,所以它只能用于等值的过滤,不能用于基于范围的过滤,因为经过相应的 Hash 算法处理之后的 Hash 值的大小关系,并不能保证和Hash运算前完全一样。 Hash 索引不能够用于诸如 < 等用于查找一个范围值的比较运算符,Hash 索引仅仅能....

【MySQL数据库原理 六】MySQL数据库索引(下)
文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 六】MySQL数据库索引(上)

索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下是比较难找的。同样,对于数据库的表而言,索引其实就是它的目录,在我的另一篇Blog数据库索引中提到,当表上定义foreign key,unique, primary key时,系统会自动为其创建索引,当数据表被删除时索引自动被删除。由于本文主要学习自《极客时间....

【MySQL数据库原理 六】MySQL数据库索引(上)
文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 五】MySQL日志机制小结

基于前两篇blog对【MySQL数据库原理 二】MySQL日志系统与事务和【MySQL数据库原理 三】MySQL如何保证数据安全可靠对日志系统做一个串联性的描述,从为什么需要使用开始讲起一直到日志是如何满足MySQL的安全可靠的。为了方便把前面的知识串联起来,我画了一个流程图:循着这个路线正序的提取下日志部分的知识精华。为什么要用日志日志有三方面的作用,分别是WAL机制、备份归档以及crash-....

【MySQL数据库原理 五】MySQL日志机制小结
文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 四】MySQL如何保证数据安全可靠

上一篇blog从DML语句的执行流程开始到两种日志以及两阶段提交,详细介绍了MySQL是如何具备crash-safe能力【只要 redo log 和 binlog 保证持久化到磁盘,就能确保 MySQL 异常重启后,数据可以恢复】的,以及WAL机制,由前文可能会产生疑问,WAL 机制是减少磁盘写,可是每次提交事务都要写 redo log 和 binlog,这磁盘读写次数也没变少呀?其实WAL 机....

【MySQL数据库原理 四】MySQL如何保证数据安全可靠
文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 三】MySQL日志系统

上一篇Blog详细学习了MySQL的架构模式和一条语句的执行流程,本篇Blog来详细聊聊MySQL的日志系统,以及它是如何在MySQL的事务上发挥至关重要的作用,本篇文章学习自《极客时间45MySQL45讲》更新语句执行流程DML数据操作语句(更新、删除、插入)这些在执行的时候肯定要记录日志,MySQL 自带的日志模块 binlog(归档日志) ,所有的存储引擎都可以使用,常用的 InnoDB ....

【MySQL数据库原理 三】MySQL日志系统
文章 2023-06-18 来自:开发者社区

【MySQL数据库原理 一】MySQL架构及查询语句执行流程

首先了解下MySQL的内部存储机制,其实我们可以把常用工具MySql workbench当做是客户端,而MySQL是服务器,结合计算机网络里学习的内容,我们可以理解为两个应用程序在通信,也就是局域网内的CS架构。MySQL架构客户端依据通信协议请求服务端,而MySQL这个服务器执行SQL语句命令并给出反馈,整体架构如下:可以粗略的把MySQL服务器分为两层,上面的为Server层,主要包括连接器....

【MySQL数据库原理 一】MySQL架构及查询语句执行流程
文章 2023-06-17 来自:开发者社区

【MySQL数据库原理 二】MySQL数据库存储引擎

什么是存储引擎? 关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂有的表根本不用来存储任何长期的数据有的表读取时非常快,但是插入数据时去很差我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于MySQL来说,它提供了很多种类型的存储引擎,我们....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。