zoukankan      html  css  js  c++  java
  • (4.45)数据库编程中的三种性能模式比较

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

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

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

    A:单行操作

    B:批量循环操作

    C:集合(结果集操作)

                                                   

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

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

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

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

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

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

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

  • 相关阅读:
    了解Whitehorse
    更新排行榜说明
    一个从Microsoft Word发表Blog文章的工具
    首页"进入我的博客"可以正常使用了
    ADO.NET: Close()与Dispose() 的讨论
    向大家致歉
    折腾了我一个下午及吃晚饭时间的问题
    [转帖]ASP.NET服务器端异步Web方法
    关于增加“收藏”功能的设想
    Mono 0.30发布了
  • 原文地址:https://www.cnblogs.com/gered/p/13446690.html
Copyright © 2011-2022 走看看