PostgreSQL 复制槽解决什么问题,管理不当为什么会撑爆主库磁盘?
PostgreSQL 复制槽解决什么问题,管理不当为什么会撑爆主库磁盘? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL replication slot WAL 保留 磁盘打满的工作方式、判断依据、项目边界和常见误区。
SQL专题面试题第 2 页,显示第 51–100 题,共找到 148 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
PostgreSQL 复制槽解决什么问题,管理不当为什么会撑爆主库磁盘? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL replication slot WAL 保留 磁盘打满的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 流复制中 WAL 是如何从主库传到备库并应用的? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 流复制 WAL walsender walreceiver 原理的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 事务 ID 回卷是什么,为什么接近回卷时数据库会强制只读甚至停库? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 事务ID回卷 xid wraparound 预防的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 唯一约束中多个 NULL 为何不冲突,如何实现对 NULL 也唯一的列? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL UNIQUE NULLS NOT DISTINCT NULL 唯一的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 大版本升级有哪些方式,如何在大库上控制停机时间? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 大版本升级 pg_upgrade 逻辑复制 停机时间的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 中 ANALYZE 与 VACUUM 为什么常一起出现,统计信息过期会造成什么问题? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL ANALYZE 统计信息 执行计划 偏差的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 为什么必须执行 VACUUM,不清理会发生什么后果? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL VACUUM 作用 死元组 事务ID回卷的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 VACUUM 与 VACUUM FULL 在锁和空间回收上的本质区别是什么? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL VACUUM vs VACUUM FULL 区别 锁的工作方式、判断依据、项目边界和常见误区。
直接把过滤参数拼进查询语句的列表接口有什么注入风险,如何防御? 本文先给出可直接复述的结论,再用最小代码说明过滤参数 注入 SQL 注入 参数校验的工作方式、判断依据、项目边界和常见误区。
MySQL/PostgreSQL 的 B+ 树索引是如何组织并支持等值查找的? 本文先给出可直接复述的结论,再用最小代码说明B+树索引 结构 查找的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 INCLUDE 非键列和直接加进索引键有什么区别? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL INCLUDE 覆盖索引 非键列的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 Index-Only Scan 为什么有时仍然要访问堆表? 本文先给出可直接复述的结论,再用最小代码说明Index-Only Scan visibility map PostgreSQL的工作方式、判断依据、项目边界和常见误区。
EXPLAIN 和 EXPLAIN ANALYZE 的区别是什么,生产环境用后者要注意什么? 本文先给出可直接复述的结论,再用最小代码说明EXPLAIN ANALYZE 区别 实际执行的工作方式、判断依据、项目边界和常见误区。
MySQL 的 FORCE INDEX 什么时候应该使用,长期依赖它有什么风险? 本文先给出可直接复述的结论,再用最小代码说明FORCE INDEX 强制索引 风险的工作方式、判断依据、项目边界和常见误区。
IS NULL 查询能用上 B 树索引吗,PostgreSQL 和 MySQL 行为有何差异? 本文先给出可直接复述的结论,再用最小代码说明IS NULL 索引 NULL 存储的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 部分索引适合什么场景,比全索引有什么优势? 本文先给出可直接复述的结论,再用最小代码说明部分索引 partial index 适用场景的工作方式、判断依据、项目边界和常见误区。
优化器如何估算一个 LIKE 'abc%' 条件会过滤出多少行? 本文先给出可直接复述的结论,再用最小代码说明选择性估算 直方图 MCV PostgreSQL的工作方式、判断依据、项目边界和常见误区。
MySQL 8.0 的索引跳跃扫描能在什么条件下绕过最左前缀限制? 本文先给出可直接复述的结论,再用最小代码说明MySQL 8.0 Index Skip Scan 最左前缀的工作方式、判断依据、项目边界和常见误区。
MySQL 的 filesort 是什么,它是额外文件排序吗? 本文先给出可直接复述的结论,再用最小代码说明filesort 排序 内存 磁盘的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 排序溢出到磁盘在 EXPLAIN 中怎么看,如何调优? 本文先给出可直接复述的结论,再用最小代码说明work_mem 排序溢出 Sort Method external merge的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 多列强相关时单列统计为何会严重低估行数,怎么解决? 本文先给出可直接复述的结论,再用最小代码说明多列统计信息 相关性 CREATE STATISTICS的工作方式、判断依据、项目边界和常见误区。
对空表执行不带 GROUP BY 的 SUM/COUNT 为什么返回一行而不是零行? 本文先给出可直接复述的结论,再用最小代码说明SQL 聚合 空表 SUM NULL COUNT 0 无 GROUP BY的工作方式、判断依据、项目边界和常见误区。
查找「没有订单的客户」时 NOT EXISTS、NOT IN 和 LEFT JOIN ... IS NULL 哪个更稳妥? 本文先给出可直接复述的结论,再用最小代码说明SQL 反连接 NOT EXISTS NOT IN LEFT JOIN IS NULL的工作方式、判断依据、项目边界和常见误区。
COALESCE 和 NULLIF 分别解决什么问题,嵌套使用能实现什么常见转换? 本文先给出可直接复述的结论,再用最小代码说明COALESCE NULLIF 区别 空值转换的工作方式、判断依据、项目边界和常见误区。
相关子查询为什么可能很慢,什么条件下能被优化器改写为连接? 本文先给出可直接复述的结论,再用最小代码说明SQL 相关子查询 性能 改写 join的工作方式、判断依据、项目边界和常见误区。
SQL 的 CROSS JOIN 在什么场景下是正确选择而不是误用? 本文先给出可直接复述的结论,再用最小代码说明SQL CROSS JOIN 使用场景 笛卡尔积的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 WITH (CTE) 在什么版本后默认内联,MATERIALIZED 关键字何时该用? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL CTE MATERIALIZED 内联 12的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 DISTINCT ON 如何按指定排序取每组第一条,和标准 DISTINCT 有何不同? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL DISTINCT ON 每组第一条 ORDER BY的工作方式、判断依据、项目边界和常见误区。
只做去重时 DISTINCT 和 GROUP BY 语义是否完全等价,优化器如何看待它们? 本文先给出可直接复述的结论,再用最小代码说明DISTINCT GROUP BY 去重 等价 优化器的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 聚合函数的 FILTER (WHERE ...) 子句相比 CASE WHEN 条件聚合有什么优势? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 聚合 FILTER WHERE 条件聚合的工作方式、判断依据、项目边界和常见误区。
如何用窗口函数把连续签到日期合并成连续区间(gaps and islands)? 本文先给出可直接复述的结论,再用最小代码说明SQL gaps and islands 连续区间 窗口函数的工作方式、判断依据、项目边界和常见误区。
SQL 中 WHERE 和 HAVING 的过滤顺序是什么,各自能引用什么? 本文先给出可直接复述的结论,再用最小代码说明SQL WHERE HAVING 区别 执行顺序的工作方式、判断依据、项目边界和常见误区。
为什么 MySQL 旧模式允许而 PostgreSQL 拒绝 SELECT 中未聚合也未分组的列? 本文先给出可直接复述的结论,再用最小代码说明GROUP BY 未分组列 ONLY_FULL_GROUP_BY PostgreSQL 报错的工作方式、判断依据、项目边界和常见误区。
ROLLUP、CUBE 和 GROUPING SETS 分别生成哪些分组层级,结果里的 NULL 如何区分? 本文先给出可直接复述的结论,再用最小代码说明SQL ROLLUP CUBE GROUPING SETS GROUPING 函数的工作方式、判断依据、项目边界和常见误区。
子查询结果含 NULL 时 NOT IN 返回空结果而 NOT EXISTS 正常,原因是什么? 本文先给出可直接复述的结论,再用最小代码说明NOT IN NULL 三值逻辑 NOT EXISTS 区别的工作方式、判断依据、项目边界和常见误区。
INTERSECT 和 EXCEPT 如何处理重复行,EXCEPT 的左右顺序为什么重要? 本文先给出可直接复述的结论,再用最小代码说明INTERSECT EXCEPT 集合运算 去重 顺序的工作方式、判断依据、项目边界和常见误区。
LEFT JOIN 的过滤条件写在 ON 里和写在 WHERE 里结果为什么不同? 本文先给出可直接复述的结论,再用最小代码说明LEFT JOIN ON WHERE 条件位置 区别的工作方式、判断依据、项目边界和常见误区。
多对多连接时 SQL JOIN 为什么会产生重复行,如何诊断并消除? 本文先给出可直接复述的结论,再用最小代码说明SQL JOIN 重复行 一对多 笛卡尔 诊断的工作方式、判断依据、项目边界和常见误区。
为什么 SQL 中 INNER JOIN 换成 LEFT JOIN 后结果行数可能变多也可能不变? 本文先给出可直接复述的结论,再用最小代码说明SQL INNER JOIN LEFT JOIN 结果行数 区别的工作方式、判断依据、项目边界和常见误区。
LAG/LEAD 在首行或末行返回 NULL,如何给出默认值并避免类型转换错误? 本文先给出可直接复述的结论,再用最小代码说明SQL LAG LEAD 默认值 NULL 偏移的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 LATERAL 连接如何简化「每组取最新一条」的查询? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL LATERAL join 每组 top N的工作方式、判断依据、项目边界和常见误区。
为什么只写 LIMIT 不写 ORDER BY 的查询结果不可依赖,即使多次执行看起来一样? 本文先给出可直接复述的结论,再用最小代码说明LIMIT 无 ORDER BY 结果不确定 顺序的工作方式、判断依据、项目边界和常见误区。
SQL SELECT 的逻辑执行顺序是什么,为什么 SELECT 里起的别名不能在同层 WHERE 用? 本文先给出可直接复述的结论,再用最小代码说明SQL 逻辑执行顺序 FROM WHERE SELECT 别名的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 MVCC 下,同一事务里两次相同的 SELECT 在什么隔离级别下结果可能不同? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL MVCC 隔离级别 不可重复读 快照的工作方式、判断依据、项目边界和常见误区。
为什么生产代码中通常不建议使用 NATURAL JOIN? 本文先给出可直接复述的结论,再用最小代码说明NATURAL JOIN 风险 隐式列匹配的工作方式、判断依据、项目边界和常见误区。
NTILE 和 PERCENT_RANK 都表达相对位置,分桶结果在什么数据下差异明显? 本文先给出可直接复述的结论,再用最小代码说明NTILE PERCENT_RANK 区别 分位数的工作方式、判断依据、项目边界和常见误区。
为什么 NULL = NULL 不成立,SQL 的三值逻辑如何让 WHERE 条件「静默丢行」? 本文先给出可直接复述的结论,再用最小代码说明SQL NULL 三值逻辑 UNKNOWN WHERE 丢行的工作方式、判断依据、项目边界和常见误区。
聚合函数遇到 NULL 列时各自如何处理,AVG 的分母是否包含 NULL 行? 本文先给出可直接复述的结论,再用最小代码说明聚合函数 NULL AVG SUM COUNT 忽略的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 排序时 NULL 默认排在哪,NULLS FIRST/LAST 如何影响分页? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL ORDER BY NULLS FIRST LAST 默认的工作方式、判断依据、项目边界和常见误区。
如何用 PostgreSQL 递归 CTE 查询组织架构下某节点的所有下级并防止环? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 递归 CTE WITH RECURSIVE 层级 环检测的工作方式、判断依据、项目边界和常见误区。