博客园 - 云扬四海
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=75338
2023-07-24T03:28:41Z
云扬四海
https://www.cnblogs.com/yunlongn/
feed.cnblogs.com
https://www.cnblogs.com/yunlongn/p/17576788.html
什么是 Safepoint - 云扬四海
### 什么是 Safepoint - 请看以下代码。请问 num 会输出什么 - 按照惯性思维,应该在休眠一秒之后。 线程里边的循环是没有做完的。num的数据会小于 2000000000 - 但是在实际执行当中 num 输出的是 2000000000 - 说明这个异步线程其实阻塞了主线程。 - 那
2023-07-24T03:23:00Z
2023-07-24T03:23:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】### 什么是 Safepoint - 请看以下代码。请问 num 会输出什么 - 按照惯性思维,应该在休眠一秒之后。 线程里边的循环是没有做完的。num的数据会小于 2000000000 - 但是在实际执行当中 num 输出的是 2000000000 - 说明这个异步线程其实阻塞了主线程。 - 那 <a href="https://www.cnblogs.com/yunlongn/p/17576788.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/17532116.html
RocketMq5.0 任意延迟时间 TimerMessageStore 源码解析 - 云扬四海
#### TimerMessageStore 简略介绍 - 延迟队列 `rmq_sys_wheel_timer` - 指定时间的延迟消息。会先投递到 `rmq_sys_wheel_timer` 队列中 - 然后由 `TimerMessageStore` 消费队列数据,将数据消费到 `timerWhe
2023-07-06T06:45:00Z
2023-07-06T06:45:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】#### TimerMessageStore 简略介绍 - 延迟队列 `rmq_sys_wheel_timer` - 指定时间的延迟消息。会先投递到 `rmq_sys_wheel_timer` 队列中 - 然后由 `TimerMessageStore` 消费队列数据,将数据消费到 `timerWhe <a href="https://www.cnblogs.com/yunlongn/p/17532116.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16921223.html
RocketMQ 的消息交互源码解析 - 云扬四海
创建Topic的时候为何要指定MessageQueue数量? 简单来说,就是你要指定你的这个Topic对应了多少个队列,也就是多少个MessageQueue。 MessageQueue就是RocketMQ中非常关键的一个数据分片机制,他通过MessageQueue将一个Topic的数据拆分为了很多个
2022-11-24T03:09:00Z
2022-11-24T03:09:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】创建Topic的时候为何要指定MessageQueue数量? 简单来说,就是你要指定你的这个Topic对应了多少个队列,也就是多少个MessageQueue。 MessageQueue就是RocketMQ中非常关键的一个数据分片机制,他通过MessageQueue将一个Topic的数据拆分为了很多个 <a href="https://www.cnblogs.com/yunlongn/p/16921223.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630269.html
MySQL十九:分库分表实践 - 云扬四海
转载~ 在很多小型应用中都没真正使用分库分表,但是说起来并不陌生,因为我们在面试中经常会被问到,今天我们从从以下几个方面来聊聊分库分表:「是什么?解决什么?怎么做?为什么要这么做?即:」 分库分表是什么? 分库分表解决什么问题? 分库分表怎么做? 分库分表什么时候做? 分库分表引发的问题是什么? 分
2022-08-30T03:45:00Z
2022-08-30T03:45:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 在很多小型应用中都没真正使用分库分表,但是说起来并不陌生,因为我们在面试中经常会被问到,今天我们从从以下几个方面来聊聊分库分表:「是什么?解决什么?怎么做?为什么要这么做?即:」 分库分表是什么? 分库分表解决什么问题? 分库分表怎么做? 分库分表什么时候做? 分库分表引发的问题是什么? 分 <a href="https://www.cnblogs.com/yunlongn/p/16630269.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630264.html
MySQL十八:写语句的执行过程 - 云扬四海
转载~ 当我们需要修改一个记录时,数据库会先根据条件找到要修改的数据,然后执行修改写入操作,因此我们再分析写操作的执行过程时,其实是包含读语句的执行过程的。 一、读语句的执行过程 在之前《MySQL运行机制》文中,详细说明了一个查询语句的执行的过程,查询sql的执行过程基本上分为六步: 「建立连接(
2022-08-29T03:45:00Z
2022-08-29T03:45:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 当我们需要修改一个记录时,数据库会先根据条件找到要修改的数据,然后执行修改写入操作,因此我们再分析写操作的执行过程时,其实是包含读语句的执行过程的。 一、读语句的执行过程 在之前《MySQL运行机制》文中,详细说明了一个查询语句的执行的过程,查询sql的执行过程基本上分为六步: 「建立连接( <a href="https://www.cnblogs.com/yunlongn/p/16630264.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630261.html
MySQL十七:Change Buffer - 云扬四海
转载~ 在之前的文章《InnoDB的存储结构》介绍的InnoDB的存储结构的组成中,我们知道Change Buffer也是用InnoDB内存结构的组成部分。 Change Buffer主要是为了在写入是减少磁盘IO而存在的, 一、什么是什么是Change Buffer 「在《Buffer Pool》
2022-08-27T03:44:00Z
2022-08-27T03:44:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 在之前的文章《InnoDB的存储结构》介绍的InnoDB的存储结构的组成中,我们知道Change Buffer也是用InnoDB内存结构的组成部分。 Change Buffer主要是为了在写入是减少磁盘IO而存在的, 一、什么是什么是Change Buffer 「在《Buffer Pool》 <a href="https://www.cnblogs.com/yunlongn/p/16630261.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630257.html
MySQL十六:36张图理解Buffer Pool - 云扬四海
转载~ 在应用系统中,我们为加速数据访问,会把高频的数据放在**「缓存」**(Redis、MongoDB)里,减轻数据库的压力。 在操作系统中,为了减少磁盘IO,引入了**「缓冲池」**(buffer pool)机制。 MySQL作为一个存储系统,为提高性能,减少磁盘IO,同样具有**「缓冲池」**
2022-08-27T03:43:00Z
2022-08-27T03:43:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 在应用系统中,我们为加速数据访问,会把高频的数据放在**「缓存」**(Redis、MongoDB)里,减轻数据库的压力。 在操作系统中,为了减少磁盘IO,引入了**「缓冲池」**(buffer pool)机制。 MySQL作为一个存储系统,为提高性能,减少磁盘IO,同样具有**「缓冲池」** <a href="https://www.cnblogs.com/yunlongn/p/16630257.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630249.html
MySQL十三:小一万字+14张图读懂锁机制 - 云扬四海
转载 MySQL中的锁有很多种,各种锁应用在不同的地方。「MySQL依靠锁机制可以让多个事务更新一行数据的时候串行化」。 MySQL中锁总的来说有两种概念:Lock和Latch Latch 称为闩锁(轻量级的锁),因为Latch要求锁定的时间非常短。其目的是用来保证并发线程操作临界资源的正确性,并且
2022-08-27T03:42:00Z
2022-08-27T03:42:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载 MySQL中的锁有很多种,各种锁应用在不同的地方。「MySQL依靠锁机制可以让多个事务更新一行数据的时候串行化」。 MySQL中锁总的来说有两种概念:Lock和Latch Latch 称为闩锁(轻量级的锁),因为Latch要求锁定的时间非常短。其目的是用来保证并发线程操作临界资源的正确性,并且 <a href="https://www.cnblogs.com/yunlongn/p/16630249.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630251.html
MySQL十四:单表最大2000W行数据 - 云扬四海
转载~ 在互联网技术圈中有一个说法:「MySQL 单表数据量大于 2000 W行,性能会明显下降」。网传这个说法最早由百度传出,真假不得而知。但是却成为了行业内一个默认的标准。 单表超过2000W行数据一定会导致性能下降吗?我认为是不一定的,虽然说建议单表不超过2000W,但是我不接受它的建议可不可
2022-08-27T03:42:00Z
2022-08-27T03:42:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 在互联网技术圈中有一个说法:「MySQL 单表数据量大于 2000 W行,性能会明显下降」。网传这个说法最早由百度传出,真假不得而知。但是却成为了行业内一个默认的标准。 单表超过2000W行数据一定会导致性能下降吗?我认为是不一定的,虽然说建议单表不超过2000W,但是我不接受它的建议可不可 <a href="https://www.cnblogs.com/yunlongn/p/16630251.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630239.html
MySQL十一:索引基本原理 - 云扬四海
转载~ 在上一篇《索引基础知识回顾》中提到索引按照存储结构划分有B-Tree索引、Hash索引、B+Tree索引类型,接下来就学习一下这几种索引结构以及在实际存储引擎中的使用情况 一、Hash索引 「Hash底层是由Hash表来实现的,存储引擎都会【对所有的索引列计算一个哈希码】(hash code
2022-08-27T03:40:00Z
2022-08-27T03:40:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 在上一篇《索引基础知识回顾》中提到索引按照存储结构划分有B-Tree索引、Hash索引、B+Tree索引类型,接下来就学习一下这几种索引结构以及在实际存储引擎中的使用情况 一、Hash索引 「Hash底层是由Hash表来实现的,存储引擎都会【对所有的索引列计算一个哈希码】(hash code <a href="https://www.cnblogs.com/yunlongn/p/16630239.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630242.html
MySQL十二:索引分析 - 云扬四海
转载~ 数据库优化是一个很常见的面试题,下面就针对这一问题详细聊聊如何进行索引与sql的分析与优化。 一、执行计划(EXPLAIN) MySQL 提供了一个 EXPLAIN 命令,它**「可以对 sql语句进行分析,并输出sql执行的详细信息」**,可以让我们有针对性的优化。例如: explain
2022-08-27T03:40:00Z
2022-08-27T03:40:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 数据库优化是一个很常见的面试题,下面就针对这一问题详细聊聊如何进行索引与sql的分析与优化。 一、执行计划(EXPLAIN) MySQL 提供了一个 EXPLAIN 命令,它**「可以对 sql语句进行分析,并输出sql执行的详细信息」**,可以让我们有针对性的优化。例如: explain <a href="https://www.cnblogs.com/yunlongn/p/16630242.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630235.html
MySQL十:索引基础知识回顾 - 云扬四海
转载~ 1、索引简介 1.1 什么是索引 索引是对数据库表中一列或多列的值进行排序的一种结构,可以大大提高MySQL的检索速度。索引在MySQL中也叫做key,当表中的数据量越来越大时,索引对于查询性能的影响非常大。 那索引具体是什么呢,找几个生活中实例比较一下就清晰了: 新华字典:索引就相当于字典
2022-08-27T03:39:00Z
2022-08-27T03:39:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 1、索引简介 1.1 什么是索引 索引是对数据库表中一列或多列的值进行排序的一种结构,可以大大提高MySQL的检索速度。索引在MySQL中也叫做key,当表中的数据量越来越大时,索引对于查询性能的影响非常大。 那索引具体是什么呢,找几个生活中实例比较一下就清晰了: 新华字典:索引就相当于字典 <a href="https://www.cnblogs.com/yunlongn/p/16630235.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630222.html
MySQL九:MVCC能否解决幻读问题 - 云扬四海
转载~ 幻读【前后多次读取,数据总量不一致】 同一个事务里面连续执行两次同样的sql语句,可能导致不同结果的问题,第二次sql语句可能会返回之前不存在的行。 事务A执行多次读取操作过程中,由于在事务提交之前,事务B(insert/delete/update)写入了一些符合事务A的查询条件的记录,导致
2022-08-27T03:35:00Z
2022-08-27T03:35:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 幻读【前后多次读取,数据总量不一致】 同一个事务里面连续执行两次同样的sql语句,可能导致不同结果的问题,第二次sql语句可能会返回之前不存在的行。 事务A执行多次读取操作过程中,由于在事务提交之前,事务B(insert/delete/update)写入了一些符合事务A的查询条件的记录,导致 <a href="https://www.cnblogs.com/yunlongn/p/16630222.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630220.html
MySQL八:读懂MVCC多版本并发控制 - 云扬四海
转载~ mysql在并发的情况下,会引起脏读,幻读,不可重复读等一系列的问题,为解决这些问题,引入了mvcc的机制。本文就详细看看mvcc是怎么解决脏读,幻读等问题的。 1、 数据库事务 1.1 事务 事务是操作数据库的最小单元,将【多个任务作为单个逻辑工作单元】执行的一系列数据库操作,他们作为一个
2022-08-27T03:34:00Z
2022-08-27T03:34:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ mysql在并发的情况下,会引起脏读,幻读,不可重复读等一系列的问题,为解决这些问题,引入了mvcc的机制。本文就详细看看mvcc是怎么解决脏读,幻读等问题的。 1、 数据库事务 1.1 事务 事务是操作数据库的最小单元,将【多个任务作为单个逻辑工作单元】执行的一系列数据库操作,他们作为一个 <a href="https://www.cnblogs.com/yunlongn/p/16630220.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630219.html
MySQL七:一文详解六大日志 - 云扬四海
转载~ 日志一般分为逻辑日志与物理日志两类 「逻辑日志」:即执行过的事务中的sql语句,执行的sql语句(增删改)**「反向」**的信息 「物理日志」:mysql 数据最终是保存在数据页中的,物理日志记录的就是数据页变更 。 「mysql数据库中日志是重要组成部分,记录着数据库运行期间各种状态信息」
2022-08-27T03:33:00Z
2022-08-27T03:33:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 日志一般分为逻辑日志与物理日志两类 「逻辑日志」:即执行过的事务中的sql语句,执行的sql语句(增删改)**「反向」**的信息 「物理日志」:mysql 数据最终是保存在数据页中的,物理日志记录的就是数据页变更 。 「mysql数据库中日志是重要组成部分,记录着数据库运行期间各种状态信息」 <a href="https://www.cnblogs.com/yunlongn/p/16630219.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630215.html
MySQL六:InnoDB数据文件 - 云扬四海
转载~ 一、数据文件的组成 innodb数据逻辑存储形式为表空间,而每一个独立表空间都会有一个.ibd数据文件,ibd文件从大到小组成: 一个ibd数据文件-->Segment(段)-->Extent(区)-->Page(页)-->Row(行) 表空间(Tablesapce) 表空间,用于存储多个i
2022-08-27T03:32:00Z
2022-08-27T03:32:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 一、数据文件的组成 innodb数据逻辑存储形式为表空间,而每一个独立表空间都会有一个.ibd数据文件,ibd文件从大到小组成: 一个ibd数据文件-->Segment(段)-->Extent(区)-->Page(页)-->Row(行) 表空间(Tablesapce) 表空间,用于存储多个i <a href="https://www.cnblogs.com/yunlongn/p/16630215.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630214.html
MySQL五:InnoDB线程模型 - 云扬四海
转载~ 一、InnoDB线程模型的组成 在Innodb存储引擎中,后台线程的主要作用是**「负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据」**。此外它会将已经修改的数据文件刷新到磁盘文件中,保证在发生异常的情况下,Innodb能够恢复到正常的运行状态。 「InnoDB存储引擎是多线程
2022-08-27T03:31:00Z
2022-08-27T03:31:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 一、InnoDB线程模型的组成 在Innodb存储引擎中,后台线程的主要作用是**「负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据」**。此外它会将已经修改的数据文件刷新到磁盘文件中,保证在发生异常的情况下,Innodb能够恢复到正常的运行状态。 「InnoDB存储引擎是多线程 <a href="https://www.cnblogs.com/yunlongn/p/16630214.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630211.html
MySQL四:InnoDB的存储结构 - 云扬四海
转载~ 「MySQL存储引擎最大的特点就是【插件化】,可以根据自己的需求使用不同的存储引擎,innodb存储引擎支持行级锁以及事务特性,也是多种场合使用较多的存储引擎。」 当官方的存储引擎不足以满足时,我们通过抽象的API接口实现自己的存储引擎。 抽象存储引擎API接口是通过抽象类handler来实
2022-08-27T03:30:00Z
2022-08-27T03:30:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 「MySQL存储引擎最大的特点就是【插件化】,可以根据自己的需求使用不同的存储引擎,innodb存储引擎支持行级锁以及事务特性,也是多种场合使用较多的存储引擎。」 当官方的存储引擎不足以满足时,我们通过抽象的API接口实现自己的存储引擎。 抽象存储引擎API接口是通过抽象类handler来实 <a href="https://www.cnblogs.com/yunlongn/p/16630211.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630210.html
MySQL三:存储引擎 - 云扬四海
转载~ 一、MySQL存储引擎概述 「数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据」。不同的存储引擎提供不同的存储机制、索引、锁等功能。许多数据库管理系统都支持多种不同的数据引擎。 在关系数据库中数据的存储是以表的形式存储的,所以**「存储
2022-08-27T03:29:00Z
2022-08-27T03:29:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ 一、MySQL存储引擎概述 「数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据」。不同的存储引擎提供不同的存储机制、索引、锁等功能。许多数据库管理系统都支持多种不同的数据引擎。 在关系数据库中数据的存储是以表的形式存储的,所以**「存储 <a href="https://www.cnblogs.com/yunlongn/p/16630210.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yunlongn/p/16630207.html
MySQL二:SQL运行机制 - 云扬四海
转载~ MySQL用了很久,但是一直也是工作的使用,对于MySQL的知识点都比较零散碎片,一直也没有整体梳理过,趁着最近不忙,梳理一下相关的知识点。 一、 MySQL的起源 MySQL是一个开源的关系数据库管理系统。原开发者为瑞典的 MySQL AB公司,2008 年AB公司被Sun公司收购,并发布
2022-08-27T03:28:00Z
2022-08-27T03:28:00Z
云扬四海
https://www.cnblogs.com/yunlongn/
【摘要】转载~ MySQL用了很久,但是一直也是工作的使用,对于MySQL的知识点都比较零散碎片,一直也没有整体梳理过,趁着最近不忙,梳理一下相关的知识点。 一、 MySQL的起源 MySQL是一个开源的关系数据库管理系统。原开发者为瑞典的 MySQL AB公司,2008 年AB公司被Sun公司收购,并发布 <a href="https://www.cnblogs.com/yunlongn/p/16630207.html" target="_blank">阅读全文</a>