数据库知识体系概览
问题
Go 中如何操作数据库?有哪些 ORM 框架?面试常考什么?
答案
知识体系
分类文档导航
| 文档 | 核心内容 |
|---|---|
| database/sql | 标准库 SQL 接口、连接池、事务、预编译 |
| GORM | ORM 基础、关联、钩子、性能优化 |
| sqlx | 轻量扩展、Named Query、Struct Scan |
| 事务处理 | 事务管理、分布式事务、最佳实践 |
| 数据库迁移 | golang-migrate、Atlas、版本管理 |
| Redis 操作 | go-redis、Pipeline、Lua 脚本 |
| MongoDB 操作 | mongo-driver、CRUD、聚合 |
| SQL 注入与安全 | 参数化查询、GORM 安全、审计 |
ORM 框架对比
| 框架 | 风格 | 特点 | 适合场景 |
|---|---|---|---|
database/sql | 原生 SQL | 标准库、完全掌控 | 简单项目 |
sqlx | SQL + 增强 | 轻量、结构体映射 | 喜欢写 SQL |
GORM | Active Record | 功能丰富、链式调用 | 快速开发 |
ent | 代码生成 | 类型安全、图模型 | 复杂模型 |
sqlc | SQL→代码 | 类型安全、零运行时开销 | 高性能 |