C++数据库开发面经总结
- 时间
- 2026-06
- 来源
- 牛客网
《面试题目》
- C++ 连接 MySQL 有哪些常见方式?Connector/C 和 Connector/C++ 有何区别?
- 什么是 SQL 注入?C++ 中如何防范?
- 预处理语句(Prepared Statement)的原理和优势是什么?
- 数据库连接池的作用是什么?如何实现或选用?
- 什么场景适合 SQLite,什么场景必须用 MySQL/PostgreSQL?
- 事务的 ACID 分别指什么?C++ 中如何保证异常时回滚?
- 同一个数据库连接能否在多线程间共享?正确做法是什么?
- 长连接和短连接各有什么优缺点?
- 如何处理数据库断线重连?
- ODBC 是什么?和直接调用 libmysqlclient 有何不同?
- SOCI 库的核心设计思想是什么?
- 大结果集查询如何避免内存暴涨?
- 什么是 N+1 查询问题?ORM 场景下如何避免?
- 数据库索引的原理?什么情况下索引失效?
- char* 与 std::string 存 SQL 参数时要注意什么?
- C++ RAII 如何用于数据库连接和事务管理?
- 读写分离架构下,C++ 服务端要注意什么?
- BLOB / 大字段在 C++ 中如何高效读写?
- 如何设计一个简单的 DAO 层?职责边界是什么?
《参考解析》
- 这类问题建议结合自己的项目经历和岗位要求准备具体案例,突出思考过程而非死记结论,面试官更看重解决问题的逻辑。
- 进程是资源分配的基本单位,线程是CPU调度的基本单位,协程是用户态的轻量级调度单位,切换成本远低于线程,但需要语言/运行时支持。
- 回答AI相关问题时应结合具体项目说明如何设计Prompt、评估效果以及处理边界情况(如幻觉、超时),并展示对模型能力边界的清晰认知。