- 博客(329)
- 收藏
- 关注
原创 mysql 13 MySQL基于规则的优化
怀孕妈妈肚子里的那个东东就是她的孩子,类似的,在一个查询语句里的某个位置也可以有另一个查询语句,这个出现在某个查询语句的某个位置中的查询就被称为 子查询 (我们也可以称它为宝宝查询哈哈),那个充当“妈妈”角色的查询也被称之为 外层查询。我们的主题本来是唠叨 MySQL 查询优化器是如何处理子查询的,但是我还是有一万个担心好多同学连子查询的语法都没掌握全,所以我们就先唠叨唠叨什么是个子查询(当然不会面面俱到啦,只是说个大概哈),然后再唠叨关于子查询优化的事儿。1.1 移除不必要的括号。
2024-10-24 22:06:12
377
原创 mysql 09 独立表空间结构
我们介绍 B+ 树索引的适用场景的时候特别提到范围查询只需要定位到最左边的记录和最右边的记录,然后沿着双向链表一直扫描就可以了,而如果链表中相邻的两个页物理位置离得非常远,就是所谓的 随机I/O。是的,如果我们表中数据量很少的话,比如说你的表中只有几十条、几百条数据的话,的确用不到 区 的概念,因为简单的几个页就能把对应的数据存储起来,但是你架不住表里的记录越来越多呀。是非常慢的,所以我们应该尽量让链表中相邻的页的物理位置也相邻,这样进行范围查询的时候才可以使用所谓的 顺序I/O。
2024-10-16 20:09:35
508
原创 mysql 10 单表访问方法
我们在第一章的时候就曾说过, MySQL Server 有一个称为 查询优化器 的模块,一条查询语句进行语法解析之后就会被交给查询优化器来进行优化,优化的结果就是生成一个所谓的 执行计划 ,这个执行计划表明了应该使用哪些索引进行查询,表之间的连接顺序是啥样的,最后会按照执行计划中的步骤调用存储引擎提供的方法来真正的执行查询,并将查询结果返回给用户。我们想突出的重点就是: B+ 树叶子节点中的记录是按照索引列排序的,对于的聚簇索引来说,它对应的 B+ 树叶子节点中的记录就是按照 id 列排序的。
2024-10-15 23:58:13
586
原创 mysql 08 数据的家-MySQL的数据目录
像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。当我们想读取数据的时候,这些存储引擎会从文件系统中把数据读出来返回给我们,当我们想写入数据的时候,这些存储引擎会把这些数据又写回文件系统。
2024-10-13 16:40:45
240
原创 mysql 06.B+树索引创建
在没有索引的情况下,不论是根据主键列或者其他列的值进行查找,由于我们并不能快速的定位到记录所在的页,所以只能从第一个页沿着双向链表一直往下找,在每一个页中根据我们刚刚唠叨过的查找方式去查找指定的记录。因为各个页中的记录并没有规律,我们并不知道我们的搜索条件匹配哪些页中的记录,所以 不得不 依次遍历所有的数据页。这个过程表明了在对页中的记录进行增删改操作的过程中,我们必须通过一些诸如记录移动的操作来始终保证这个状态一直成立:下一个数据页中用户记录的主键值必须大于上一个页中用户记录的主键值。
2024-10-04 17:15:20
775
原创 微信支付 02 加深理解密钥,加密解密,数字签名,数字证书
数字签名: 用于证实信息的来源和完整性,广泛应用于软件分发、电子文档签名等。安全通信: 如HTTPS、SSL/TLS等协议,用于安全地传输数据。数据加密: 用于保护敏感数据的隐私,如电子邮件加密、文件加密等。身份验证: 在多种在线服务和交易中验证用户身份。1.2 私钥(Private Key)1.1 公钥(Public Key)1.3 加密和解密过程。1.4 数字签名和验证。1.5 密钥生成和管理。1.6 加密算法和标准。
2024-09-19 19:19:51
684
原创 RabbitMQ 03 在项目中的实际使用: 告警,批处理
订单请求模块只用于发送请求和处理确认,订单处理模块专门用于处理请求并且发送确认信息。01.例子,解耦合(使用异步)1.1异步思想:不会专门等待。1.4 两个模块之间如何通信。1.2 例子:程序执行。1.3 如何设计程序。
2024-09-04 13:41:34
495
原创 RabbitMQ 02 操作,配置信息,用户权限
2.2 一个RabbitMQ 节点 = 一个 Erlang节点+一个Erlang 程序 (RabbitMQ程序)2.1 MQ是用Erlang语言写的。01.介绍启动,关闭。
2024-09-01 14:31:31
463
原创 mysql 03 字符集和比较规则
最容易想到的就是直接比较这两个字符对应的二进制编码的大小,比方说字符 ‘a’ 的编码为 0x01 ,字符 ‘b’ 的编码为 0x02 ,所以 ‘a’ 小于 ‘b’ ,这种简单的比较规则也可以被称为二进制比较规则,英文名为 binary collation。每种字符集对应若干种比较规则,每种字符集都有一种默认的比较规则, SHOW COLLATION 的返回结果中的Default 列的值为 YES 的就是该字符集的默认比较规则,比方说 utf8 字符集默认的比较规则就是utf8_general_ci。
2024-07-24 22:19:24
140
原创 JUC 01 补充 ThreadLocal
ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。01.ThreadLocal简介。
2024-07-14 18:12:59
152
原创 jvm 06 对象内存结构,指针压缩,调优
规则:所有对象大小都必须能被8整除 8字节对齐。类型指针 klass pointer。开启指针压缩 4B。关闭指针压缩 8B。开启指针压缩 4B。关闭指针压缩 8B。
2024-07-09 15:48:10
319
原创 jvm 03 JVM的运行时数据区域 ,(类常量池,运行时常量池,字符串常量池这个三个的区别),操作系统内存模型JMM和JVM的内存模型联系
方法区在jdk8后,改成元空间。
2024-07-04 12:24:16
278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人