特定目的程序语言
十五年数据库相关经验,做过 DBA、架构师、技术顾问。不求"颠覆",只求"靠谱"。
我从设计转行学数据库写第一个多表JOIN,就把production库拖挂了半小时。老DBA找我谈话的时候,我还在解释"我以为LEFT JOIN和INNER JO...
每次系统变慢,第一反应就是“去看看慢查询日志”。找到那条慢SQL,分析执行计划,加索引或改写法,问题解决。这是慢查询日志的标准用法——找慢SQL、修慢SQL。
MySQL 做 OLTP、PostgreSQL 做 OLAP、Snowflake 做数据仓库、偶尔还要给某个历史遗留的 Oracle 系统跑个报表……这几乎是现...
SQL写法有问题、索引没建对、统计信息过旧、参数没调好、磁盘I/O满了、内存不够、网络抖动……每种原因对应的排查方法完全不同。
这个问题,我几乎每周都会被问到。分布式数据库的热度确实很高,但很多人对“分布式”的理解还停留在“把数据拆开存到多台机器上”。实际上,在决定上不上分布式之前,先搞...
SQL里有一类操作,看起来很简单,写起来也很顺手——UNION、INTERSECT、EXCEPT。三个词搞定并集、交集、差集,比写一堆JOIN和子查询清爽多了。
做了这么多年SQL优化,你有没有发现一个奇怪的现象:同一套业务数据,同一个版本的数据库,只是在不同的环境里跑,执行计划可能完全不一样——有时候走索引,有时候全表...
你有没有过这种经历:对着 AI SQL 工具改了五六版提示词,点了无数次撤销重写,最后跑出来的结果还是不对。
因此,真正决定业务成败的,不是"是否出问题",而是你是否能在问题影响用户之前发现并解决它。
写这篇文章的起因是前段时间应急一个线上事故:一个看起来"已经用了 ORM"的查询接口被人扫到了盲注,DAST 工具报了三个高危。复盘的时候发现,团队对"参数化查...
“最长连续上涨天数”,这道题在数据面试里被反复用来考人,据说通过率不到 20%。不是因为它难,而是因为它把 SQL 的一个老毛病暴露得干干净净:你明明知道逻辑是...
问题出在哪?Buffer Pool命中率是一个"平均数",它会被热点数据拉高,掩盖冷门数据的灾难。 如果你的数据库有一小部分数据被疯狂访问(命中率接近100%)...
自然语言查数的难点不是让模型写出一条 SQL,而是让系统知道何时可以执行、何时应追问、何时必须拒绝。本文给出一套面向生产的 NL2SQL 闭环:语义解析、候选生...
传统开发中,前后端、数据库往往需要分别安装配置环境,团队协作时极易出现“在我机器上能跑”的问题。Docker Compose 通过一个 YAML 文件定义多容器...