随笔分类 -  八股 / MySQL

摘要:Redis之所以速度快,主要有以下几个原因: 内存存储 Redis将数据存储在内存中,内存的读写速度比传统的磁盘存储快得多,这使得Redis可以在短时间内处理大量的读写请求。 单线程架构 Redis采用单线程模型来处理客户端的请求,避免了多线程环境下的线程切换和锁竞争开销,提高了执行效率。同时,Re 阅读全文
posted @ 2025-04-18 10:54 蒟蒻00 阅读(139) 评论(0) 推荐(0)
摘要:Redis的淘汰策略有以下几种: 1. volatile-lru(最近最少使用):从已设置过期时间的键中,选择最近最少使用的键进行淘汰。 2. volatile-ttl:从已设置过期时间的键中,选择剩余生存时间最短的键进行淘汰。 3. volatile-random:从已设置过期时间的键中,随机选择 阅读全文
posted @ 2025-04-18 10:33 蒟蒻00 阅读(224) 评论(0) 推荐(0)
摘要:原子性(Atomicity)的实现 实现机制:Undo Log(回滚日志) Undo Log记录:当事务对数据进行修改时,InnoDB 会先记录修改前的数据到 Undo Log 回滚操作:如果事务失败需要回滚,引擎会使用 Undo Log 将数据恢复到事务开始前的状态 多版本控制:Undo Log 阅读全文
posted @ 2025-04-17 10:15 蒟蒻00 阅读(66) 评论(0) 推荐(0)
摘要:使用 EXPLAIN 查看执行计划 作用:分析查询优化器选择的执行计划,包括索引使用、表连接顺序等。 语法:EXPLAIN SELECT * FROM 表名 WHERE 条件; 输出关键字段: type:访问类型(如ALL全表扫描、INDEX索引扫描、ref非唯一索引等)。 key:实际使用的索引。 阅读全文
posted @ 2025-04-03 11:31 蒟蒻00 阅读(184) 评论(0) 推荐(0)
摘要:普通索引 定义:最基本的索引类型,没有任何限制,主要用于提高查询效率。 创建语法: -- 在表的某列上创建普通索引 CREATE INDEX index_name ON table_name (column_name); 使用场景:适用于经常用于查询条件的列,例如在用户表中,经常根据用户的姓名进行查 阅读全文
posted @ 2025-03-25 20:12 蒟蒻00 阅读(47) 评论(0) 推荐(0)
摘要:1、读未提交 定义:这是最低的隔离级别,一个事务可以读取另一个未提交事务的数据。 优点:并发性能最高,因为它几乎不进行任何隔离。 缺点: 2. 读已提交(Read Committed) 定义:一个事务只能读取另一个已经提交事务的数据。 优点:避免了脏读问题,提高了数据的一致性。 缺点:会产生不可重复 阅读全文
posted @ 2025-03-25 19:31 蒟蒻00 阅读(44) 评论(0) 推荐(0)
摘要:MySQL中的事务(Transaction)是一组数据库操作的逻辑单元,确保这些操作要么全部成功提交,要么全部失败回滚,从而维护数据的一致性。事务具备四个关键特性,即 ACID 特性。 ACID 特性 原子性(Atomicity):事务里的所有操作要么全部成功,要么全部失败回滚。就像银行转账,从一个 阅读全文
posted @ 2025-03-25 16:41 蒟蒻00 阅读(37) 评论(0) 推荐(0)
摘要:定义和目的 MySQL 事务 是由一组 SQL 语句组成的逻辑单元,这些语句要么全部执行成功,要么全部回滚,以保证数据库的一致性。例如,在一个银行转账的场景中,从一个账户扣款和向另一个账户存款这两个操作必须作为一个事务来处理,确保不会出现只完成部分操作的情况,从而避免数据不一致。 多线程安全 主要关 阅读全文
posted @ 2025-03-25 12:24 蒟蒻00 阅读(37) 评论(0) 推荐(0)
摘要:数据库分片 概念:数据库分片(Sharding)是一种将大型数据库分割成多个较小的、相互独立的部分(称为分片)的技术,每个分片可以存储在不同的服务器上,从而实现数据的分布式存储和处理。 优势 提高性能和可扩展性 1、并行处理:数据分散在多个分片中,不同的查询可以在不同的分片上并行执行,大大提高了查询 阅读全文
posted @ 2025-03-24 23:16 蒟蒻00 阅读(179) 评论(0) 推荐(0)