# 2. DDL 在事务中的回滚,哪些操作可以回滚、哪些不可以? A MySQL 所有 DDL 可回滚 B PostgreSQL 支持事务性 DDL ✓ 正确答案 C 所有数据库一致 D DDL 不可回滚
# 3. DDL 锁的粒度,ACCESS EXCLUSIVE(PostgreSQL)、Metadata Lock(MySQL)? A MySQL 无锁 B 两者相同 C PostgreSQL 用 ACCESS EXCLUSIVE ✓ 正确答案 D DDL 不加锁
# 5. PostgreSQL 原生支持事务性 DDL(CREATE/DROP/ALTER TABLE)的实现机制(catalog 与 heap 双写)? A 仅靠 WAL B 与 MVCC 无关 C DDL 不可回滚 D catalog 作为普通表支持事务 ✓ 正确答案
# 6. SQL Server 的 DDL 事务性,是否支持事务回滚 CREATE TABLE? A 不可回滚 B 支持事务回滚 CREATE TABLE ✓ 正确答案 C 与 MySQL 相同 D 无事务
# 8. DDL 与 MVCC,DDL 修改对正在执行查询的可见性? A DDL 立即影响所有查询 B 已开始查询不受后续 DDL 影响 ✓ 正确答案 C 查询会看到 DDL 中间态 D 与 MVCC 无关
# 12. DDL 触发器的 BEFORE/AFTER 语义? A SQL Server 支持 DDL 触发器 ✓ 正确答案 B 无 BEFORE/AFTER C PostgreSQL 原生支持 D 所有数据库都支持
# 14. MySQL 的 ALGORITHM=COPY 与 INPLACE 的差异? A COPY 性能更好 B INPLACE 需要重建表 C 两者等价 D INPLACE 就地修改性能更好 ✓ 正确答案
# 23. INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 的完整语义与执行差异? A INNER 保留所有行 B LEFT JOIN 保留左表所有行 ✓ 正确答案 C FULL 只取交集 D RIGHT 保留左表
# 25. JOIN 中空值(NULL)的处理,NULL = NULL 永假导致左表行被丢弃? A NULL = NULL 永假 ✓ 正确答案 B NULL 能匹配 C 与 NULL 无关 D 自动匹配
# 26. JOIN 条件 ON 与 WHERE 在 OUTER JOIN 中的差异,误用 WHERE 导致 OUTER 退化为 INNER? A 两者等价 B 无差异 C ON 在连接后评估 D WHERE 过滤右表列可使 LEFT 退化 INNER ✓ 正确答案
# 27. JOIN 的执行算法,Nested Loop、Hash Join、Sort Merge Join 的适用场景? A Nested Loop 适合大表大表 B Hash Join 适合等值连接 ✓ 正确答案 C 与索引无关 D 无法选择
# 28. JOIN 的非等值条件(>, <, BETWEEN)的实现,Hash Join 不支持非等值? A Hash Join 支持所有 B 与算法无关 C 非等值无法连接 D Hash Join 不支持非等值 ✓ 正确答案
# 29. JOIN 顺序对执行计划的影响,PostgreSQL 的 join_collapse_limit、MySQL 的 optimizer_search_depth? A 与优化器无关 B 影响执行计划代价 ✓ 正确答案 C 无参数可调 D 固定顺序
# 34. JOIN 扇出(fan-out)为何会让 COUNT(*)/SUM() 结果膨胀(一对多连接使主表行被重复计数)?如何用先聚合再连接或半连接(EXISTS)规避? A 无影响 B 无法规避 C 先聚合会加剧 D 一对多连接导致计数膨胀 ✓ 正确答案
# 35. 驱动表选择错误与统计信息失真为何会让 Nested Loop 的内表被反复全表扫描、代价爆炸?如何用 ANALYZE 更新统计或调整连接顺序/Hint 纠正? A 与统计无关 B 统计失真导致代价爆炸 ✓ 正确答案 C 无法纠正 D 驱动表固定
# 37. JOIN 性能调优,调整 join_collapse_limit、from_collapse_limit? A 只影响排序 B 与优化器无关 C 固定值 D 控制 JOIN 重排 ✓ 正确答案
# 46. JOIN 的执行计划解读(Hash Join vs Nested Loop)? A Hash Join 显示构建哈希表 ✓ 正确答案 B Nested Loop 不显示 C 计划无法解读 D 与算法无关
# 50. LEFT JOIN 的反向推导(找出左表独有的行)? A 用 WHERE t2.id IS NULL ✓ 正确答案 B 用 WHERE t2.id IS NOT NULL C 无法实现 D 与反连接无关
# 58. 写入并发度的数据库参数调优,max_connections、innodb_thread_concurrency? A 与并发无关 B 固定值 C 越大越好 D innodb_thread_concurrency 限制并发线程 ✓ 正确答案