请问sql中为了起到更新效果,删除后添加数据和直接更新数据的方法相比,运行速度会怎么样?

例如先删除原先学生表中学生id为1的学生信息,再添加新的学生id为1的信息,与直接更新学生id为1的学生信息相比,速率会怎么样?一样,还是变慢了,还是怎么样,请给出合理的... 例如先删除原先学生表中学生id为1的学生信息,再添加新的学生id为1 的信息,与直接更新学生id为1的学生信息相比,速率会怎么样?一样,还是变慢了,还是怎么样,请给出合理的分析,谢谢。 展开
 我来答
百度网友7b27965
2014-12-03 · TA获得超过170个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:248万
展开全部
你这表述的有点过大了,得具体问题具体分析。首先你表上是否有主键或者索引,更新的字段是否跟主键或者索引所在的字段有关。其次:从理论上来说,更新(需要一次磁盘操作)比先删除在插入速率会快些(需要两次磁盘操作)。最后:速度的快慢取决于你的操作对索引的影响,先删除在增加理论上会增加索引碎片。如果你是更新操作的话直接更新索引字段的话,也会导致索引重新排序。
大概就是这样吧。
更多追问追答
追问
没有索引和主键的多对多关系表的更新呢
追答
那就跟磁盘读写次数有关了。
先删除在插入理论上需要两次磁盘读写操作

更新理论上需要一次磁盘操作
zhangqingxian
2014-12-03 · TA获得超过268个赞
知道小有建树答主
回答量:362
采纳率:0%
帮助的人:308万
展开全部
当然是直接更新快了,删除添加记录改变了整条记录,而更新只改变了某些字段,还有如果表上有索引的话删除添加记录还会引起索引的更新
更多追问追答
追问
如果是多对多关系表怎么更新呢?例如学生和家长关联表,没有主键,有student_id,parent_id两个字段,一个学生有多个家长,一个家长有多个学生,这个关联表要想通过学生id或者家长id好像无法更新啊,只能先删除,再添加吧。
追答
这两个id组合起来是个索引,只要你同时指定student_id和parent_id就可以找到唯一的一条记录,对吧?
找得到记录,就可以更新了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
啊賴耶識
2021-11-26
知道答主
回答量:29
采纳率:60%
帮助的人:4.6万
展开全部
这个要看你更新的数据量, 如果你只是更新一个学生的信息, 那么就是更新的速度快, 但是用户是体验不到删除插入和直接更新的速度差,
如果你要更新100个学生的信息, 分别设置不同的值,那么你需要循环100次去更新数据库,
而如果采用删除插入,你只需要两次数据库操作, 虽然插入的数据量会大一些, 但是速度会远高于update.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-03
展开全部
当然是慢了,删除一条数据时,如果是有外键的,或者索引的,都会先检查的,同时删除操作也会记录日志的,再增加一条数据时,也会做同样的操作,而更新数据的话,只会记录日志,和外键关联不大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式