MySQL45讲 与 原理应用 基础掌握
文章平均质量分 95
Alascanfu
O ever youthful, O ever weeping
展开
-
乐心湖‘s Blog——MySQL入门到精通 —— 囊括 MySQL 入门 以及 SQL 语句优化 —— 索引原理 —— 性能分析 —— 存储引擎特点以及选择 —— 面试题
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优点缺点提高数据检索效率,降低数据库的IO成本索引列也是要占用空间通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗索引大大提高了查询效率,但降低了更新的速度,比如INSERT、UPDATE、DELETE。...转载 2022-07-31 14:42:38 · 364 阅读 · 0 评论 -
MySQL45讲——学习极客时间MySQL实战45讲笔记—— 06 | 全局锁和表锁_给表加个字段怎么有这么多阻碍
根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章,我会和你分享全局锁和表级锁。全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句DML(数据的增删改)、数据定义语句DDL(包括建表、修改表结构等)和更新类事务的提交语句。全局锁的典型使用场景是——做全库逻辑备份。📚 也就是把整个库的每张表 select 出来存成文本。以前有一种做法,是通过 .原创 2022-07-02 17:37:37 · 410 阅读 · 0 评论 -
MySQL45讲——学习极客时间MySQL实战45讲笔记—— 05 | 深入浅出索引(下)
现在,我们一起来看看这条 SQL 查询语句的执行流程:1️⃣ 在 k 索引树上找到 k=3 的记录,取得 ID = 300;2️⃣ 再到 ID 索引树查到 ID=300 对应的 R3;3️⃣ 在 k 索引树取下一个值 k=5,取得 ID=500;4️⃣ 再回到 ID 索引树查到 ID=500 对应的 R4;5️⃣ 在 k 索引树取下一个值 k=6,不满足条件,循环结束。📚 在这个过程中,回到主键索引树搜索的过程,我们称为回表。可以看到,这个查询过程读了 k 索引树的 3 条记录(步骤 1、3 和 5),回.原创 2022-07-02 03:19:13 · 268 阅读 · 0 评论 -
MySQL45讲——学习极客时间MySQL实战45讲笔记—— 04 | 深入浅出索引(上)
一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。就是我们从小就用的字典里面的声母查询方式就是聚簇索引。 偏旁部首就是二级索引,偏旁部首+笔画就是联合索引。 这种方式比较适合人类的思维方式,设计也比较精妙。 还有比较有意思的一种查询方式就是ES里的倒排索引,感觉有点反人类,只适合机器用吧。可以用于提高读写效率的数据结构很多,常见原创 2022-07-01 22:56:57 · 751 阅读 · 0 评论 -
MySQL45讲——学习极客时间MySQL实战45讲笔记—— 03 | 事务隔离:为什么你改了我还看不见
📖 本文目录:book: 03 | 事务隔离:为什么你改了我还看不见:bookmark_tabs: 什么是事务:bookmark_tabs: 事务的四大特性:bookmark_tabs: 事务隔离性:bookmark: 隔离级别:bookmark: 事务隔离性案例:star: 读未提交:star: 读已提交:star: 可重复读:star: 串行化:star: 数据库是如何实现的上述案例结果显示的:bookmark: 可重复读的 业务场景:bookmark_tabs: 事务隔离的实现:bookmark:原创 2022-05-25 00:03:32 · 296 阅读 · 0 评论 -
MySQL45讲——学习极客时间MySQL实战45讲笔记—— 02 | 日志系统:一条SQL更新语句是如何执行的
📖 本文目录📖 02 | 日志系统:一条SQL更新语句是如何执行的?📑 前情提要📑 重要的日志模块 —— redo log⭐️ 问题:IO成本过高的原因?⭐️ WAL——Write-Ahead Logging⭐️ redo log 的写方式❓ 当“粉板”满了如何操作? 会遇到什么问题?⭐️ redo log 小结📑 重要的日志模块 —— binlog⭐️ 问题:为什么会有两份日志呢?⭐️ redo log 与 binlog 日志的不同⭐️ 执行器 和 InnoDB 引擎在执行 update 语句时内部流程原创 2022-05-24 15:49:34 · 417 阅读 · 0 评论 -
MySQL45讲——学习极客时间MySQL实战45讲笔记—— 01 | 基础架构:一条SQL查询语句是如何执行的
📖 本文目录📖 01 | 基础架构:一条SQL查询语句是如何执行的?📑 MySQL 的基础架构🔖 Server 层🔖 存储引擎 层📑 连接器🔖 问题:如果全部使用长连接,有时MySQL占用内存会涨的过快,其原因是?以及解决措施方案?📑 查询缓存🔖 问题:大多数情况下建议不要使用查询缓存,为什么?📑 分析器📑 优化器🔖 问题:优化器的优化原则是什么?📑 执行器🔖 没有索引时的执行过程🔖 存在索引时的执行过程📑 课后习题📖 01 | 基础架构:一条SQL查询语句是如何执行的?本文是 MySQL 实战 4原创 2022-05-22 23:44:25 · 1072 阅读 · 0 评论 -
MySQL —— VIEW (MySQL视图的创建、删除、更新等基本操作以及概念理解)
📖 本文目录📖 MySQL —— VIEW (MySQL视图)📑 什么是视图📑 视图的作用📑 视图的相关操作🔖 查看是否具有创建视图的权限🔖 视图的创建🔖 视图的删除🔖 视图的修改📖 MySQL —— VIEW (MySQL视图)推荐学习资料—— MySQL视图 —— pan_junbiao做出的知识笔记 —— 用于自身学习📑 什么是视图在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。原创 2022-05-22 19:39:37 · 597 阅读 · 0 评论 -
MySQL —— Stored Procedure (MySQL存储过程的快速上手与使用 囊括应用案例)
本文目录 📖📖 MySQL —— Stored Procedure (MySQL存储过程)📑 什么是 MySQL 存储过程📑 存储过程的优缺点以及特性📑 快速创建存储过程和调用📑 存储过程的创建和调用🔖 存储过程语法结构🍼 声明局部变量并赋值输出🍼 声明成员变量并赋值输出⭐️ 系统变量——全局变量 与 会话变量🔖 存储过程的重要语法🔖 存储过程的参数⭐️ in 输入参数——传入参数⭐️ out 输出参数——输出值⭐️ inout 输入参数⭐️ 总结🔖 存储过程的流程控制语句⭐️ 流程控制——判断 if⭐️原创 2022-05-22 18:19:19 · 1854 阅读 · 0 评论 -
MySQL——How To Use Trigger(MySQL 中触发器的理解与使用——以及触发器在NEW表与OLD表的应用)
📖 本文目录📖 MySQL——触发器 TRIGGER📑 什么是触发器 TRIGGER📑 触发器的特点及作用📑 触发器的创建📑 查看当前已有触发器📑 触发器在 NEW 表 与 OLD 表的应用📑 删除已有触发器📑 触发器术语📖 MySQL——触发器 TRIGGER摘录自 Water_Coder —— MySQL之 触发器 用于学习📑 什么是触发器 TRIGGER📑 什么是触发器 TRIGGER ?在数据库处理中使用的这个术语是指当在数据表中触发了某种操作或事件(插入、删除、更新操作),然后自原创 2022-05-14 20:39:06 · 467 阅读 · 0 评论