摘要: 如何保证缓存和数据库的一致性呢? 强一致性是保证不了的,只能尽可能的保证。 阅读全文
posted @ 2021-12-09 19:50 ayuecoding 阅读(15) 评论(0) 推荐(0)
摘要: Redis 宕机了,缓存的数据怎么办? Redis 持久化两板斧,AOF、RDB 阅读全文
posted @ 2021-12-09 17:45 ayuecoding 阅读(561) 评论(0) 推荐(0)
摘要: 进程和线程 进程,指运行中的程序。 在没有线程前,进程如果阻塞,就会被挂起,即使其中有些操作并不依赖于等待的资源,仍旧不会执行。 为了解决这个问题,操作系统引入了线程,作为进程中的一条执行流程。一个进程包含多个线程,线程作为任务的真正执行者,有自己的寄存器和栈。同时,会和进程内其他线程共享虚拟内存等 阅读全文
posted @ 2021-11-15 10:49 ayuecoding 阅读(65) 评论(0) 推荐(0)
摘要: 一条 SQL 执行很慢的原因 分两种情况, 大多数时候正常,偶尔很慢。 原因可能是,MySQL 后台线程在刷脏页。 一直很慢。 原因可能是,没用索引,或者加了索引,但索引失效, 又或者 MySQL 优化器选错索引,可以使用 use index 来指定索引 那如何优化 MySQL 呢? 从表、索引、S 阅读全文
posted @ 2021-11-15 10:44 ayuecoding 阅读(2187) 评论(0) 推荐(0)
摘要: binlog MySQL 基础架构分为 Server 层和存储引擎层两部分。 Server 层的日志是 binlog,记录 SQL 语句的原始逻辑,用来归档和复制。 InnoDB 引擎的日志是 redo log,记录数据页的修改,用来实现 crash-safe 能力。 两阶段提交 为了让两份日志之间 阅读全文
posted @ 2021-11-15 10:42 ayuecoding 阅读(130) 评论(0) 推荐(0)
摘要: InnoDB 的事务是基于事务日志 undo log 和 redo log 实现的。 undo log undo log 是回滚日志,使用段的方式记录数据行的历史版本,提供回滚操作,保证事务的一致性。 redo log redo log 是重做日志,记录数据页的修改,提供再写入操作,保证事务的原子性 阅读全文
posted @ 2021-11-15 10:39 ayuecoding 阅读(208) 评论(0) 推荐(0)
摘要: 基础架构 MySQL 基础架构分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等大多数核心服务。存储引擎层负责数据的存储和提取,支持 MyISAM、InnoDB 等引擎。 执行一条 SQL 查询语句时, 先用连接器跟客户端建立连接。 然后,查询缓 阅读全文
posted @ 2021-11-15 10:35 ayuecoding 阅读(67) 评论(0) 推荐(0)
摘要: 上一篇讲到 Redis 有高性能,其中一个原因是有高效的数据结构,今天我们就来讲一讲。 数据类型 在 Redis 中,所有的对象都被封装成 redisObject,包括 type、encoding 两个属性。 type,就是 Redis 支持的 string、hash、list、set 和 zset 阅读全文
posted @ 2021-11-15 10:07 ayuecoding 阅读(169) 评论(0) 推荐(0)
摘要: 你好,我是阿越。 今天,我想讲一讲很多人初学 Redis 时会遇到的困惑,“为什么单线程的 Redis 能这么快?” 为什么 Redis 采用单线程? 首先,我们先来理清,Redis 为什么使用单线程? 事实上,Redis 只对网络 IO 和数据读写等核心操作采用单线程,目的是避免多线程的并发控制问 阅读全文
posted @ 2021-11-15 09:57 ayuecoding 阅读(117) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示