09 2023 档案

摘要:在上一篇文章中,我跟你介绍了 MySQL 的全局锁和表级锁,今天我们就来讲讲 MySQL 的行锁。 MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一 阅读全文
posted @ 2023-09-25 15:50 jiuchengi 阅读(72) 评论(0) 推荐(0) 编辑
摘要:今天我要跟你聊聊 MySQL 的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章,我会和你分享全局 阅读全文
posted @ 2023-09-25 11:42 jiuchengi 阅读(115) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中,我和你介绍了 InnoDB 索引的数据结构模型,今天我们再继续聊聊跟 MySQL 索引有关的概念。 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表 T 中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作 阅读全文
posted @ 2023-09-25 10:24 jiuchengi 阅读(59) 评论(0) 推荐(1) 编辑
摘要:提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。 数据库索引的内容比较多,我分成了上下两篇文章。索引是数据库系统里面 阅读全文
posted @ 2023-09-18 17:00 jiuchengi 阅读(70) 评论(0) 推荐(0) 编辑
摘要:提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。 转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这 阅读全文
posted @ 2023-09-18 10:43 jiuchengi 阅读(115) 评论(0) 推荐(1) 编辑
摘要:前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听 DBA 同事说,MySQL 可以恢复到半个月内任意一秒 阅读全文
posted @ 2023-09-18 09:34 jiuchengi 阅读(78) 评论(0) 推荐(0) 编辑
摘要:这是专栏的第一篇文章,我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行 阅读全文
posted @ 2023-09-15 17:15 jiuchengi 阅读(37) 评论(0) 推荐(0) 编辑
摘要:你好,我是林晓斌,网名“丁奇”,欢迎加入我的专栏,和我一起开始 MySQL 学习之旅。我曾先后在百度和阿里任职,从事 MySQL 数据库方面的工作,一步步地从一个数据库小白成为 MySQL 内核开发人员。回想起来,从我第一次带着疑问翻 MySQL 的源码查到答案至今,已经有十个年头了。在这个过程中, 阅读全文
posted @ 2023-09-15 16:34 jiuchengi 阅读(53) 评论(0) 推荐(0) 编辑
摘要:一、简介1)在方法上使用该@Async注解,申明该方法是一个异步任务;2)在类上面使用该@Async注解,申明该类中的所有方法都是异步任务;3)方法上一旦标记了这个@Async注解,当其它线程调用这个方法时,就会开启一个新的子线程去异步处理该业务逻辑。4)使用此注解的方法的类对象,必须是spring 阅读全文
posted @ 2023-09-13 10:13 jiuchengi 阅读(2991) 评论(0) 推荐(1) 编辑
摘要:浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用equals来判断。 说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。 二进制无法精确表示大部分的十进制小数,具体原理参考《码出高效》。 源代码 double maxValue = 0.0 阅读全文
posted @ 2023-09-11 11:39 jiuchengi 阅读(390) 评论(0) 推荐(0) 编辑
摘要:1、InnoDB、MyISAM 区别 MySQL 引擎 InnoDB 和 MyISAM 是 MySQL 中常用的两种存储引擎,它们具有以下不同的特点: InnoDB 支持事务,而 MyISAM 不支持事务。 InnoDB 支持行级锁定,而 MyISAM 支持表级锁定。在并发访问的情况下,InnoDB 阅读全文
posted @ 2023-09-05 16:04 jiuchengi 阅读(125) 评论(0) 推荐(0) 编辑
摘要:1. MyISAM索引实现: 概述:MyISAM的索引文件仅仅保存数据记录的地址。在MyISAM中,主索引和辅助索引在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复 1)主键索引: MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。 阅读全文
posted @ 2023-09-05 15:50 jiuchengi 阅读(142) 评论(0) 推荐(0) 编辑
摘要:前言 要搞明白覆盖索引首先就得明白主键索引和辅助索引的区别,以及查询时引擎的工作方式。 当然,以上都是基于innoDB引擎来说。 主键索引与辅助索引的区别 相信大家也了解过这方面的知识,这里就不展开了,直接上总结。 主键索引 叶子节点保存数据 辅助索引 叶子节点保存主键值 查询一条数据是如何工作的呢 阅读全文
posted @ 2023-09-05 15:23 jiuchengi 阅读(415) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示