一个新网站刚上线,最先出现的访客往往不是读者,而是扫描 .env、寻找 WordPress 后台和尝试 SSH 登录的自动程序。当然,检查结果一般不通知你。很多人最初接触 Cloudflare,只是把网站的 DNS 记录设为已代理(Proxied)。继续翻控制台才会发现,它管的远不止网站入口:Email Routing 处理域名邮件转发,Tunnel 接入海外托管的自建应用,Page Shield 监控第三方脚本,R2 可以存备份,Notifications 负责告警。缓存、
出门在外,用 Cloudflare 保护好自己
2026-09-07•约 10.9 千字
PostgreSQL 与 InnoDB 的存储路径
假设有一张再普通不过的订单表:主键是 id,用户经常按 status 查询,后台又不断更新订单状态。CREATE TABLE orders ( id bigint PRIMARY KEY, status varchar(32) NOT NULL, buyer_id bigint NOT NULL, total decimal(12, 2) NOT NULL, note varchar(500), created_a
2026-09-02•约 13.9 千字
Go 请你喝一杯绿茶
如果 CPU profile 里 runtime.gcBgMarkWorker、对象扫描和分配路径长期霸榜,GC 才值得被请出来背锅。高频 JSON 解码、临时字符串和一地鸡毛的小对象,都会把 GC 累得够呛;锁竞争、网络调用和慢查询造成的延迟,则不是给 GC 换个名字就能治好的。Go 1.26 默认启用 Green Tea。它没有突然变成分代 GC,也不会把对象搬来搬去;底子仍是并发、非移动的标记—清扫。变化发生在标记阶段:以前更像追着一个个对象满堆跑,现在尽量把同一段堆内
2026-08-31•约 8.9 千字
PostgreSQL 如何选择索引
明明建了索引,数据库为什么不用?这是数据库问题里最常见、也最容易误判的一类。表上有索引,查询条件里也写了索引列,EXPLAIN 却给出一个 Seq Scan。把 enable_seqscan 关掉,索引突然又能用了。于是很自然地会得出结论:规划器选错了,或者它的成本估算与实际情况不符。但「能用某个索引」和「使用它成本最低」是两回事。索引先找到的是行的位置,不一定是查询最终需要的行;找到位置之后,还可能要读取表页、检查 MVCC 可见性、过滤误命中、排序、回表取列。若条件会返回
2026-08-30•约 16.9 千字






