(4.45)数据库编程中的三种性能模式比较

数据库系统性能很重要,这点人所共知。为了取得数据库系统的高性能,开发人员经常被告诫要用集合思维,不要用过程化思维来操作数据库。

这种说法理论上很正确,但是很多人觉得太抽象,不好理解。本短文试图用一种简单又易懂的方式来阐明其中的道理,以助有关开发人员在编码时尽可能地写出高性能代码。

    本文超市购物 ( 购买十件商品 ) 来类比数据库访问,从而揭示出集合思维和过程化思维的实质性区别所在。

A:单行操作

B:批量循环操作

C:集合(结果集操作)

                                               

图一 超市购物和数据库操作的动作序列对比

 

    从图一可知,第一类 A 和第二类 B ,就是过程性的思维方式,只有第三类 C 才是集合操作的思维方式。

  很显然,也只有第三类 C 的数据库性能是最佳的,第一类 A 的数据库性能为最差,第二类 B 次之。

 

  当然从计算机本质来说,有人会说,最后都是过程性处理方式啊,因为最后都会转化机器指令,全都是一条一条逐条执行。

  这么讲,虽然有抬杠的味道,但是道理也对。

  不过呢,区别在于:第一类 A 和第二类 B ,除了真正需要的数据库操作之外,包含了很多的无用操作,大大延长了处理时间(等于延长了锁的持续时间),和超市购物一比较,就很显然了,这里就不重复细说了。

 

转自:http://blog.itpub.net/25309314/viewspace-2689097/

posted @ 2020-08-06 15:34  郭大侠1  阅读(281)  评论(0编辑  收藏  举报