摘要:
一、索引特点 优势:1. 提高数据检索效率,减少查找数据的磁盘I/O操作 缺点:1. 占用磁盘空间 2. 增加维护成本,增删改需要维护索引 二、索引分类 1. 聚集索引:一张表只能有一个,叶子节点会包含该行的完整数据。 2. 非聚集索引:叶子节点不存完整的数据。 #创建聚集索引 ALTER TABL 阅读全文
摘要:
一、Insert语句的执行流程 undo log:数据的旧版本 记录undo_log的redo log:将undo log记录到redo log,防止需要回滚但服务器宕机导致的回滚失败。 二、事务 2.1 ACID特性 2.2 设置当前会话的隔离级别 //设置read uncommitted级别: 阅读全文
摘要:
一、逻辑架构 Connectors:Mysql的客户端, Management Serveices & Utilities:系统管理和控制工具 Connection Pool:连接池 SQL Interface:DDL、DML语句对应的处理接口 Parser:解析器,对SQL语句进行词法和语法分析, 阅读全文
摘要:
一、设计优化 1. 估算Redis内存使用量 以非数字的字符串键值对为例,假设key和value的长度均为12个字节,则内部使用的编码方式为embstr。共计90000个键值对占用的空间 Redis中存储键值对使用字典,字典内部使用哈希表数组,数组的每个元素dictEntry中共有三个指针(指向键的 阅读全文
摘要:
1. 分布式锁的特点 互斥性:同一时刻只有一个客户端可以持有锁 容错性:只要锁服务集群中大部分节点正常运行,客户端就可以进行锁操作 避免死锁:保证锁一定能释放,正常释放或超时释放 加锁和解锁是同一个客户端 2. 分布式锁的实现方式 基于数据库实现分布式锁(乐观锁、悲观锁) 基于zookeeper时节 阅读全文
摘要:
Redis 5.0版本之后提供的新的数据类型,类似于MQ,是发布订阅模式的改进 1. Streams数据结构 每一个Streams有唯一的名称,对应了Redis的键。将所有加入的消息(xadd指令)串联起来,每个消息有一个ID Consumer Group:消费组,同一个消息可以被组内成员消费,但只 阅读全文
摘要:
1. BitMap(Redis2.2版本之后) 内部编码为二进制字符串 1. 命令:setbit key offset value offset 必须是数字代表坐标,从0开始计数;value只能为0或1 底层初始化一个全为0的字符串(默认32位),根据offset的将对应位置的值更改为value,用 阅读全文
摘要:
Redis的事务是指将多个命令请求打包,一次性地,按顺序执行的机制。通过MULTI、EXEC、WATCH等命令实现事务功能。 19.1 事务的实现 19.1.1 事务的开始 MULTI命令的执行代表了一个事务的开始,会将执行该命令的客户端由非事务状态切换成事务状态(在客户端状态的flags属性中打开 阅读全文
摘要:
通过SUBSCRIBE命令,客户端可以订阅一个或多个频道,每当有其他客户端向被订阅的频道发送消息,频道的订阅者都会收到消息 通过PSUBSCRIBE命令,客户端可以订阅一个或多个模式,每当有其他客户端向被订阅的频道发送消息,与该频道相匹配的模式订阅者也会收到 18.1 频道的订阅和退订 redisS 阅读全文