ORM、会话与数据访问代码
SQL、业务数据建模与数据库实践#FDE#第五阶段#SQL、业务数据建模与数据库实践#ORM、会话与数据访问代码约 574 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
ORM、原始 SQL 和查询构建器怎样选择?
追问 开发效率、复杂查询和可审查性如何比较?能否解释 ORM 实际发出的 SQL?
数据库连接池与 ORM Session 有什么区别?
追问 共享池与共享可变会话为何不是一回事?并发线程或协程应怎样管理各自会话?
会话与事务生命周期应怎样绑定请求或任务?
追问 提交、回滚和关闭分别做什么?异常后如何避免泄漏连接或继续使用失效状态?
flush 与 commit 怎样区分?
追问 取得 ID 或执行 SQL 后是否已经持久提交?回滚会怎样影响数据库和内存对象?
怎样发现列表读取中的 N+1 查询?
追问 查询次数如何随工单数量变化?预加载或选择字段后怎样验证结果与分页?
延迟加载和预加载各有什么代价?
追问 一对多 JOIN、重复行与额外查询如何比较?怎样决定哪些关联值得提前加载?
批量更新与逐对象更新有哪些行为差异?
追问 事件、校验、版本保护和内存状态如何核对?怎样验证两种写法是否满足相同业务要求?
参数化查询与 ORM 是否自动解决全部 SQL 风险?
追问 原始片段、动态列名和跨空间过滤如何检查?框架能力不能替代哪些业务约束?
事务提交失败时,数据访问代码怎样处理?
追问 冲突、连接中断与结果未知如何区别?重试写入前怎样确认已发生的结果?
怎样让数据访问层便于集成测试和定位?
追问 连接配置、查询日志和测试库如何组织?哪些真实数据库行为不能仅靠 mock 验证?