(4.45)数据库编程中的三种性能模式比较
数据库系统性能很重要,这点人所共知。为了取得数据库系统的高性能,开发人员经常被告诫要用集合思维,不要用过程化思维来操作数据库。
这种说法理论上很正确,但是很多人觉得太抽象,不好理解。本短文试图用一种简单又易懂的方式来阐明其中的道理,以助有关开发人员在编码时尽可能地写出高性能代码。
本文超市购物 ( 购买十件商品 ) 来类比数据库访问,从而揭示出集合思维和过程化思维的实质性区别所在。
A:单行操作
B:批量循环操作
C:集合(结果集操作)
图一 超市购物和数据库操作的动作序列对比
从图一可知,第一类 A 和第二类 B ,就是过程性的思维方式,只有第三类 C 才是集合操作的思维方式。
很显然,也只有第三类 C 的数据库性能是最佳的,第一类 A 的数据库性能为最差,第二类 B 次之。
当然从计算机本质来说,有人会说,最后都是过程性处理方式啊,因为最后都会转化机器指令,全都是一条一条逐条执行。
这么讲,虽然有抬杠的味道,但是道理也对。
不过呢,区别在于:第一类 A 和第二类 B ,除了真正需要的数据库操作之外,包含了很多的无用操作,大大延长了处理时间(等于延长了锁的持续时间),和超市购物一比较,就很显然了,这里就不重复细说了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2019-08-06 【0.1】mysql版本升级(5.6升级到5.7),mysql5.6安装
2018-08-06 数据库设计与性能优化
2018-08-06 (4.10)sql server导入导出