MongoDB 聚合管道:从 find 到 Aggregation
复杂统计 find 已经力不从心。介绍 aggregate 管道思想与 $match/$group/$lookup 等常用阶段,附实战示例。
复杂统计 find 已经力不从心。介绍 aggregate 管道思想与 $match/$group/$lookup 等常用阶段,附实战示例。
大促时缓存层挂了数据库怎么办?区分三种缓存异常,分别给出空值缓存、互斥锁、随机过期等方案。
提到生产数据库就是 MySQL/PostgreSQL?我自己的博客后端跑的就是 SQLite。小流量场景下它不仅够用,还有一堆独到优势。聊聊什么时候该用、怎么用、什么时候千万别用。
接口变慢十有八九是 SQL 的锅。一套实战流程:开慢查询日志、EXPLAIN 分析、索引优化、改写 SQL 与分页优化。
LIMIT 20 OFFSET 100000 看着人畜无害,实则要扫描 10 万行再扔掉。这篇讲深分页的性能真相、游标分页的原理与实现,以及覆盖索引这个顺手的优化。
转账中途出错怎么办?脏读、不可重复读、幻读分别是什么?讲清 ACID、隔离级别与 InnoDB 的 MVCC 对策。
理论都懂:缓存穿透、击穿、雪崩。但真到给一个慢接口加缓存时,key 怎么设计、过期时间怎么定、更新怎么同步,全是细节。这篇用一个真实案例走一遍完整流程。
没有表结构的数据库怎么用?介绍文档模型、_id、基础 CRUD、查询操作符和嵌入文档/数组的查询方式。
Redis 不只是缓存,String/Hash/List/Set/ZSet 各有杀手锏。结合命令示例讲每种结构的适用场景。
什么场景该用 MySQL,什么场景该上 Redis/Mongo?从存储结构、Schema、事务、扩展性几个维度对比并给出选型建议。
VARCHAR(255) 一把梭?金额用 FLOAT?时间存 INT?建表时的每个随手选择,都可能在半年后变成事故。这篇总结我在字段类型上的选型规则和踩过的坑。
"统计每个分类下的文章数,只显示超过 5 篇的分类"——这个需求该用 WHERE 还是 HAVING?分不清这两个的 SQL 总会在奇怪的地方报错。这篇把聚合查询的执行逻辑讲清楚。
INNER JOIN 和 LEFT JOIN 的结果到底差在哪?用两张小表跑一遍各种 JOIN,把结果集看懂,以后写关联查询不再凭感觉。
WHERE、GROUP BY、HAVING、ORDER BY 谁先执行?为什么 WHERE 里不能用聚合函数的别名?搞懂执行顺序就通了。