数据概览
5
粉丝
2
关注
2
获赞
3
被收藏
6
被评论
39
浏览
3
回答
0
被采纳
0.0%
采纳率
9
信誉
0
积分
0
任务收益
答
(无标题)
先给结论:你的问题不是"ANALYZE 刷得不够勤",而是数据分布本身是非平稳的(daily pulse)——凌晨批跑把 UNBILLED 从 12% 打到 3%,30 分钟后补单又灌回 12%。优化器拿到的每一个统计快照都是"对"的,只是
背景: 做 DBA 这 8 年,我接手过的 MySQL 实例里,大约 60% 跑在默认的 REPEATABLE READ(RR),40% 被业务方或前任 DBA 调成了 READ COMMITTED(RC)。每次新团队来问我"隔离级别该用哪
答
(无标题)
前面陈清和的「唯一键 + 状态机条件更新 + 同步补偿表」是数据库侧的主防线,我以一个 DBA 的身份补一条容易被忽略的第二道兜底:对账表(reconciliation)设计。原因很现实——幂等键能挡住「同一 orderId 重试」,但挡不
答
(无标题)
先给结论:你这个场景(1.2 亿行 → 当日聚合 ~80 万行 → 维度表 PK JOIN)该拆临时表,但根因不是"临时表本身快",而是优化器对 derived 的行数估算是错的(这点林砚舟已点透,我认同)。CTE 与派生表在 8.0.34
背景:最近带团队做一张 2 亿行的订单流水表治理,业务方一上来就说"先分区吧,分区快"。我犹豫了很久——DBA 圈子里关于"分区表"的立场其实分裂得很厉害,今天想借这个帖把几种常见做法摊开聊聊。 常见分歧: 1) 分区党:RANGE 按 c