面试题库

全部 Django Elasticsearch FastAPI Flask Function Call JVM Java IO Java 后端 Java 基础 Java 并发 Java 新特性 Java 集合 JavaWeb Kafka LLM LangChain LangGraph MongoDB MyBatis MySQL Netty Nginx Python RAG RabbitMQ Redis RocketMQ Spring Spring AI SpringBoot SpringCloud SpringMVC ZooKeeper 分布式 后端技术 大厂面经 大数据 微服务 提示词工程 操作系统 数据库 数据结构 智能体 海康威视2026秋季社招专项 消息队列 监控运维 算法 系统设计 缓存 计算机基础 计算机网络 设计模式 面试题 高可用 高并发
MySQL 简单

笛卡尔积 join(无 ON 条件) 为什么危险?如何避免误写?

MySQL 中等

join 时出现 Using join buffer (Block Nested Loop) 意味着什么?如何判断 join_buffer 是否足够?

MySQL 中等

如何优化多表 join 的慢查询?有哪些常见手段(索引/驱动表/预聚合)?

MySQL 中等

子查询改写为 join 一定更快吗?什么时候不应该改写?

MySQL 困难

Semi-join 与 Anti-join 是什么?EXISTS/NOT EXISTS 与 IN/NOT IN 在优化器层面如何转换?

MySQL 中等

为什么建议用小结果集作为驱动表?“小表”是指行数少还是过滤后结果小?

MySQL 中等

join 条件字段类型不一致(如 varchar 与 int)会导致什么后果?为什么会隐式转换失效索引?

MySQL 中等

Hash Join 对内存的要求?join buffer 不够时如何落盘?与 sort_buffer 的关系?

MySQL 中等

多表 join 时如何利用 straight_join 或 optimizer hint 干预驱动表选择?

MySQL 中等

如何通过 EXPLAIN 判断一条 join 走了哪种算法?各算法在 Extra/type 上有什么特征?

MySQL 中等

使用 join 时,被驱动表 join 字段上没有索引会发生什么?如何优化?

MySQL 中等

为什么 join 时要“小表驱动大表”?优化器如何决定谁是驱动表?