数据库
读 PostgreSQL EXPLAIN:先找行数误差,再看 loops 和缓冲区
执行计划里的 cost 不是毫秒,actual rows 还要结合 loops 看。本文用查询示例解释估计偏差、扫描方式和缓冲区,并说明 ANALYZE 会真正执行语句。
PostgreSQL 的 NOT IN 查不到数据,先看看名单里有没有 NULL
排除名单里混入 NULL,NOT IN 可能把本该留下的记录也过滤掉。用一组可复现查询看清原因,再按业务规则选择 NOT EXISTS 或过滤空值。
用 Docker 安装 Adminer,临时查看和管理数据库
临时排查数据库问题,可以启动一个 Adminer 容器。查完后停止界面,原有 MySQL 或 PostgreSQL 继续运行。
pgweb 安装教程:在网页里查询 PostgreSQL
查表和执行简单 SQL 时,可以用 pgweb 给现有 PostgreSQL 加一个网页界面。连接使用只读账号,管理入口通过 SSH 隧道访问。
从执行计划排查 MySQL 慢查询
在 MySQL 8.4 的十万行倾斜数据上,对照联合索引前后的真实计划,解释扫描、排序、回表和深页分页,并说明一次查询变快之后还要验证什么。
PostgreSQL 站内搜索实践
用 PostgreSQL 18 的独立小语料和三万条合成标题,实测中文切词、字面包含、英文纠错与查询计划,完成一套能解释结果、能控制成本的站内搜索方案。