摘要:
在 MySQL 中,索引的使用可以大大提升查询性能,但在某些情况下,索引可能会失效,导致 MySQL 无法利用索引,转而进行全表扫描或其他低效操作。以下是索引失效的常见情况: 1. 查询条件导致索引失效 条件中使用了函数: 如果查询条件中的列被函数包裹,MySQL 无法利用索引。 示例: SELEC 阅读全文
摘要:
MySQL 索引覆盖(Covering Index) 是一种优化查询性能的技术,指的是查询所需的所有列的数据都能够从索引中获取,不需要再回表查询数据。 1. 索引覆盖的概念 覆盖索引(Covering Index) 是一种索引,它包含了 SQL 查询中涉及的所有列(包括查询列和条件列),不需要额外访 阅读全文
摘要:
1. 缓存击穿 含义 缓存击穿是指某个 热点数据 恰好在缓存过期后,大量请求直接访问数据库,导致数据库压力骤增。 典型场景 某些数据是高频访问的热点数据,比如抢购活动中热门商品的库存。 由于该数据缓存时间到期,在缓存中失效,瞬间大量请求涌向数据库。 解决方案 热点数据提前续期: 在缓存接近失效时间时 阅读全文
摘要:
1. Map 的主要结构 map 的底层数据结构定义在 Go 源码的 runtime 包中,其核心结构体是 hmap。Go 的 map 使用 哈希表 存储键值对,并结合了**桶(bucket)**机制来优化存储和查找。 hmap 的主要字段 count:存储的键值对数量。 buckets:哈希桶的数 阅读全文