redis基础概念

redis为什么这么快? 纯内存操作 (Memory-Based Storage) :这是最主要的原因。Redis 数据读写操作都发生在内存中,访问速度是纳秒级别,而传统数据库频繁读写磁盘的速度是毫秒级别,两者相差数个数量级。 高效的 I/O 模型 (I/O Multiplexing & Singl

MaSks要加油丫 MaSks要加油丫 发布于 2025-08-30

Mysql语句执行过程

今天回顾了下mysql语句执行过程,随笔记录下。先来看看mysql的常见书写结构, #方式1: SELECT ...,....,... FROM ...,...,.... WHERE 多表的连接条件 AND 不包含组函数的过滤条件 GROUP BY ...,... HAVING 包含组函数的过滤条件

MaSks要加油丫 MaSks要加油丫 发布于 2025-05-22

Mysql文件系统

今天写写mysql文件系统,像 InnoDB、 MyISAM 这样的存储引擎都是把表存储在磁盘上的,操作系统用来管理磁盘的结构被称为 文件系统 ,所以用专业一点的话来表述就是:像 InnoDB、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。当我们想读取数据的时候,这些存储引擎会从文件系统

MaSks要加油丫 MaSks要加油丫 发布于 2025-04-18

Mysql索引递进之路_01

一、索引概述 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实高级查找算法。 好比一本教课书的目录

MaSks要加油丫 MaSks要加油丫 发布于 2025-03-26

Mysql索引递进之路_02

首先需要强调,索引是基于具体的存储引擎实现的,我们谈索引必然绕不开基于哪个存储引擎。 一、索引推演 先来看个最简单的查找语句 SELECT [列名列表] FROM 表名 WHERE 列名 = xxx; 展示出的所有数据在底层的存储单位为数据页。一个数据页中默认的存储大小是16KB,也就是只能存储部分

MaSks要加油丫 MaSks要加油丫 发布于 2025-03-12

Mysql索引递进之路_03

一、索引迭代 上文提到目录项可以使用二分法的方式快速定位到目标目录项,进而找到数据页位置。 实际操作中,数据页只有16KB大小,随着数据页越来越多,数据目录项也会越来越多,底层连续空间存储的压力就会越来越大。还有一种情况,如果某数据页后期删除不要了,或者有数据新增,意味着数据目录项也需要删除或新增,

MaSks要加油丫 MaSks要加油丫 发布于 2025-02-27

Mysql索引递进之路_04

一、聚簇索引与非聚簇索引 索引按照物理实现方式,索引可以分为2种:聚(聚集)和非聚簇(非聚集)索引。我们也把非聚集索引称为二级索引或者辅助索引。 聚簇索引:基于主键构建的索引或者b+tree。聚簇索引并不是一种单独的索引类型,而是一种数据存储方式(所有的用户记录都存储在了叶子节点),也就是所谓的 索

MaSks要加油丫 MaSks要加油丫 发布于 2025-02-14

Mysql索引递进之路_05

前文 https://hamburgers.cn/archives/index_04 介绍的 聚簇索引只能在搜索条件是 主键值 时才能发挥作用,因为B+树中的数据都是按照主键进行排序的。那如果我们想以别的列作为搜索条件该怎么办呢?肯定不能是从头到尾沿着链表依次遍历记录一遍。 答案:我们可以 多建几棵

MaSks要加油丫 MaSks要加油丫 发布于 2025-02-08

Mysql索引递进之路_06

一、InnoDB中b+树注意事项 1. 根页面位置万年不动 前文为了理解方便,写为先有数据页,目录项,再上层目录项,演变时候是由下而上。但是其实存储的时候实际上是由上而下。过程如下, 每当为某个表创建一个B+树索引(聚簇索引不是人为创建

MaSks要加油丫 MaSks要加油丫 发布于 2025-01-27