数据库做什么最耗CPU资源及alter和update的区别

  

      >>update

      >>alter update 有何不同呢

 

        update 是否耗时和数据结构的组成有密切关系,最有效率的是那种

每笔纪录都有固定栏数栏宽的资料表结构,那么 update new

的速度差不多,new 是直接摆在资料表最尾端,update 则是算出

该笔纪录在档案的位置,把资料置换过来。

 

    但如果数据结构是那种分隔符式的纯文字资料表,由于他每笔纪录

不一定同栏数,每栏宽度也不固定,也就是每笔纪录的长度不一,你要

换算某笔资料在档案的位置就要麻烦了,况且你要 update 的那笔资料

不见得宽度刚好适合摆得下。

 

    所以每笔纪录固定长度的资料表,update 只需更改一笔纪录,但对

分隔符式资料表而言,update 却必须把整个资料表所有纪录从头到

尾重排一遍。

 

        > ALTER 指的是修改已建立 table 的结构 (schema)

            alter 必须重排整个资料表纪录。

         > UPDATE 指的是更新 table 中已建立的资料

        要补充说的是 delete insert 的动作,delete 在资料表

处理的合理作法上,并不是真把该纪录删去,然后把所有后面的纪录

往前移,因为你不知道该纪录后面是否有成千上万笔纪录要一一前挪的。

它只是把该纪录前面做个删除注记,系统读到他就知道是个已删除的纪录

,而不处理。

 

    至于 insert ,严格说来数据库根本不会做这种插入动作,因为每插

一笔,整个后面纪录就要重挪一遍。如果你的数据库软件可以给你

insert 纪录,那只不过是结合 new resort 之后的障眼法而已。

 

    从这里就可看出,一个资料表经过一段时间的 update,delete,new,

insert 之后,一定排序前后颠到,废纪录注记一堆,效率也愈来愈差,

这时就要整理重建资料表。这没什么大学问,就是先把原资料表 sort

一遍,然后按 sort 过后的次序,一笔笔纪录 copy 到新的资料表,

并丢弃那些有废除注记的纪录,完毕后,再把那新资料 recover

来,盖掉旧资料表。

 

    所以什么最花 cpu 时间?当然是资料表纪录重整,其次是纪录排序及搜寻,

最简单的就是只改一笔,并且能用加减乘除的数学运算找出该笔数据得位置。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值