求仁得仁
MySQL-SQL执行过程 MySQL-SQL执行过程
MySQL的内部组件结构:MySQL 可以分为 Server 层和存储引擎层两部分 Server层:主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务
2024-09-11
MySQL-MVCC MySQL-MVCC
MVCC(Multi-Version Concurrency Control) 机制可以保证可重复读隔离级别下的隔离性 undo日志版本链与read view机制 undo日志版本链是指一行数据被多个事务依
2024-09-11
MySQL-InnoDB-BufferPool MySQL-InnoDB-BufferPool
为什么Mysql不能直接更新磁盘上的数据而且设置这么一套复杂的机制来执行SQL 因为来一个请求就直接对磁盘文件进行随机读写,然后更新磁盘文件里的数据性能可能相当差 Mysql这套机制看起来复杂,但它可以保证每个更新请求都是更新内存Buf
2024-09-11
MySQL-InnoDB-日志&事务 MySQL-InnoDB-日志&事务
redo 日志 undo 日志 事务流程 Redo & binlog & Undo 日志的关系 redo 日志 redo 日志(保证了事务的持久性):只是记录了一下事务对数据库做了哪些修改 redo 日志占用的空间
2024-09-11
MySQL-InnoDB-存储结构&Buffer Pool MySQL-InnoDB-存储结构&Buffer Pool
数据结构 体系结构 双写机制 Buffer Pool 数据结构 InnoDB 的三大特性:双写缓冲区/双写机制;Buffer Pool;自适应 Hash 索引 行格式 可以在创建或修改表的语句中指定行格式:CREATE TABLE
2024-09-11
MySQL-Explain MySQL-Explain
EXPLAIN EXPLAIN 列 索引最佳实践 EXPLAIN EXPLAIN关键字可以模拟优化器执行SQL语句:执行查询会返回执行计划的信息,而不是执行这条SQL 如果 from 中包含子查询,仍会执行该子查询,将结果放入临时
2024-09-11
MySQL-性能优化 MySQL-性能优化
慢查询 set GLOBAL slow_query_log=1; `set global long_query_time=0; set global log_output='FILE,TABLE' mysqldumpslow -s r
2024-09-11
MySQL-索引优化 MySQL-索引优化
索引优化原则 SQL 索引优化 索引设计规范 SQL 优化 数据类型选择 索引优化原则 联合索引第一个字段用范围不会走索引 强制走索引:最终查找效率不一定比全表扫描高,因为回表效率不高 覆盖索引优化 in和or在表数据量比较大的情况
2024-09-11
MySQL-索引数据结构 MySQL-索引数据结构
B-Tree B+Tree(B-Tree变种) Hash MyISAM 非聚集索引 InnoDB 聚集索引 B-Tree 叶节点具有相同的深度,叶节点的指针为空 所有索引元素不重复 节点中的数据索引从左到右递增排列 B+
2024-09-11
MySQL-索引合并 MySQL-索引合并
索引合并:一般情况下执行一个查询时最多只会用到单个二级索引,但特殊情况下也可能在一个查询中使用到多个二级索引 Intersection 交集合并 等值匹配 在联合索引中的每个列都必须等值匹配,不能出现只匹配部分列的情况 主键列可以
2024-09-11
MySQL-事务 MySQL-事务
事务 锁 事务 ACID 原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行 一致性(Consistent) :在事务开始和完成时,数据都必须保持一致状态。这意
2024-09-11
MySQL-内核查询优化规则 MySQL-内核查询优化规则
条件化简 移除不必要的括号 常量传递(constant_propagation) 移除没用的条件(trivial_condition_removal) 表达式计算 常量表检测 使用主键等值匹配或者唯一二级索引列等值匹配作为搜索条件来查
2024-09-11
MySQL-高可用架构 MySQL-高可用架构
基础集群 MySQL主从同步原理 搭建主从集群 配置master主服务 配置slave从服务 部分同步 GTID同步集群 集群扩容与MySQL数据迁移 复杂集群 半同步复制 主从集群与读写分离 更复杂的集群结构 高可用集
2024-09-11
MySQL-成本计算 MySQL-成本计算
一条查询语句的执行成本由下边这两个方面组成 I/O成本:把数据或者索引加载到内存 CPU成本:读取以及检测记录是否满足对应的搜索条件、对结果集进行排序等操作 基于索引统计数据的成本 IN语句中的参数个数: eq_range_ind
2024-09-11
MySQL-8新特性 MySQL-8新特性
账户与安全 用户的创建与授权 密码管理 认证插件 角色管理 索引 隐藏索引:被隐藏的索引不会被优化器使用,但依然真实存在 系统方面 原子 ddl 操作:保证了 drop table t1,t2 时两个表的原子性 自增列持久化
2024-09-11
Redis-7.0新特性 Redis-7.0新特性
共享复制缓存区 老版本多从库时主库内存占用过多(每个从库都有一个从库复制缓冲区) Redis 为了提升多从库全量复制的效率和减少 fork 产生RDB 的次数,会尽可能的让多个从库共用一个 RDB 将 ReplicationB
2024-09-10
Redis-6.0新特性 Redis-6.0新特性
多线程 Client Side Cache Acls 多线程 redis 6.0 提供了多线程的读写IO, 但是最终执行用户命令的线程依然是单线程的 io‐threads 
2024-09-10
Redis-分布式锁 Redis-分布式锁
Redisson -> LUA 自旋信号量拿锁 解锁后信号量唤醒尝试再加锁(Redis订阅发布通知唤醒) 锁续命 避免线程执行时锁失效,导致该线程释放其它线程的锁 锁重入 读写锁 锁失效:无解,Redis的可用性高于可
2024-09-10
1 / 12