随笔分类 -  数据库

摘要:总结 实现一个严格的 LRU 算法,需要额外的内存构建 LRU 链表,同时维护链表也存在性能开销,Redis 对于内存资源和性能要求极高,所以没有采用严格 LRU 算法,而是采用**「近似」**LRU 算法实现数据淘汰策略 触发数据淘汰的时机,是每次处理**「请求」**时判断的。也就是说,执行一个命 阅读全文
posted @ 2022-05-22 21:28 请务必优秀 阅读(1262) 评论(0) 推荐(0) 编辑
摘要:基础架构 连接器 建立连接成本过高,尽量使用长连接,维护长连接的方式有两种:定期断开长连接或定期执行mysql_reset_connection 来重新初始化连接资源 查询缓存 (key-value形式)key是查询语句,value是查询结果,查询缓存命中率不高,弊大于利,在mysql8.0已被移除 阅读全文
posted @ 2022-05-16 22:43 请务必优秀 阅读(138) 评论(0) 推荐(0) 编辑
摘要:建索引的几大原则 最左前缀匹配原则 mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到 阅读全文
posted @ 2022-05-11 14:39 请务必优秀 阅读(426) 评论(0) 推荐(0) 编辑
摘要:总结 很多人认为 Redis 是单线程,这个描述是不准确的。准确来说 Redis 只有在处理**「客户端请求」**比如接收客户端请求、解析请求和进行数据读写等操作时,是单线程的。但整个 Redis Server 并不是单线程的,还有后台线程,比如文件关闭、AOF 同步写和惰性删除在辅助处理一些工作。 阅读全文
posted @ 2022-04-25 14:24 请务必优秀 阅读(170) 评论(0) 推荐(0) 编辑
摘要:索引目的 索引的目的在于提高查询效率,可以类比字典索引。 索引原理 通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件 数据库实现比较复杂,数据保存在磁盘上,而为了提高性能,每次又可以把部分数据读入内存来计算,因为访问磁盘的成本大概是访问内存的十万倍左右 磁盘IO 阅读全文
posted @ 2022-04-19 14:27 请务必优秀 阅读(77) 评论(0) 推荐(0) 编辑
摘要:使用场景 DB缓存,减轻服务器压力 提高系统响应 做Session分离 分布式锁(Redis) 多个进程(JVM)在并发时也会产生问题,也要控制时序性,使用Redis实现 sexNX 乐观锁(Redis) 同步锁和数据库中的行锁、表锁都是悲观锁,悲观锁的性能是比较低的,响应性比较差 高性能、高响应( 阅读全文
posted @ 2022-01-10 23:02 请务必优秀 阅读(492) 评论(0) 推荐(0) 编辑
摘要:对于海量的互联网业务来说,除了线上的数据库,还需要有一套对应的历史数据库,用于查询历史的数据。比如查看历史微博、查看淘宝历史交易。 历史数据库架构 业务会将最新的数据变更插入在线的 MySQL 数据库,但 MySQL 数据库仅保留最近半年的数据,超过半年的数据会存放在历史数据库系统中。对于历史数据库 阅读全文
posted @ 2021-09-26 15:23 请务必优秀 阅读(495) 评论(0) 推荐(0) 编辑
摘要:DROP TABLE 生产环境大多数是已经确定的库表,一般不会进行 DROP TABLE 这么重的操作,甚至大部分DBA 都不应该拥有 DROP 权限。 随着数据无限增长,在某些系统中,需要将数据归档到历史数据库,删除生产数据库中的表,从而释放存储空间,典型的就是偏日志、流水类的数据。 “优雅的删除 阅读全文
posted @ 2021-09-25 23:39 请务必优秀 阅读(273) 评论(0) 推荐(0) 编辑
摘要:表结构设计 INT 类型不使用 unsigned 无符号属性,容易引入额外的计算问题。 自增用 8 字节 BIG INT,不要使用 4 字节 INT,且自增在 MySQL 8.0 版本前有回溯问题,请考虑是否业务有影响。 字符集使用 UTF8MB4 字符编码,不推荐 GBK、UTF-8 等其他字符集 阅读全文
posted @ 2021-09-25 11:18 请务必优秀 阅读(91) 评论(0) 推荐(0) 编辑
摘要:总结 要想理解 Redis 数据类型的设计,必须要先了解 redisObject。 Redis 的 key 是 String 类型,但 value 可以是很多类型(String/List/Hash/Set/ZSet等),所以 Redis 要想存储多种数据类型,就要设计一个通用的对象进行封装,这个对象 阅读全文
posted @ 2021-08-30 23:42 请务必优秀 阅读(356) 评论(0) 推荐(0) 编辑
摘要:通过阅读 Redis 源码,可以学习和掌握到的计算机系统设计思想 根据 Redis 不同的功能特性,分线条学习每个功能特性上涉及的关键技术和设计思想 对于Redis的代码架构,需要掌握以下两类内容 代码的目录结构和作用划分,目的是理解 Redis 代码的整体架构,以及所包含的代码功能类别; 系统功能 阅读全文
posted @ 2021-08-22 22:51 请务必优秀 阅读(1354) 评论(0) 推荐(0) 编辑
摘要:介绍 ​ etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。它是一款云原生时代的首选元数据存储产品,已经成为云原生和分布式系统的存储基石。 简要基础架构图 Client层 组成 client v2 API 客户端库 client v3 API 客户端库 作用 提供了简 阅读全文
posted @ 2021-06-15 13:39 请务必优秀 阅读(832) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示