请问sql中为了起到更新效果,删除后添加数据和直接更新数据的方法相比,运行速度会怎么样?
例如先删除原先学生表中学生id为1的学生信息,再添加新的学生id为1的信息,与直接更新学生id为1的学生信息相比,速率会怎么样?一样,还是变慢了,还是怎么样,请给出合理的...
例如先删除原先学生表中学生id为1的学生信息,再添加新的学生id为1 的信息,与直接更新学生id为1的学生信息相比,速率会怎么样?一样,还是变慢了,还是怎么样,请给出合理的分析,谢谢。
展开
展开全部
当然是直接更新快了,删除添加记录改变了整条记录,而更新只改变了某些字段,还有如果表上有索引的话删除添加记录还会引起索引的更新
更多追问追答
追问
如果是多对多关系表怎么更新呢?例如学生和家长关联表,没有主键,有student_id,parent_id两个字段,一个学生有多个家长,一个家长有多个学生,这个关联表要想通过学生id或者家长id好像无法更新啊,只能先删除,再添加吧。
追答
这两个id组合起来是个索引,只要你同时指定student_id和parent_id就可以找到唯一的一条记录,对吧?
找得到记录,就可以更新了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要看你更新的数据量, 如果你只是更新一个学生的信息, 那么就是更新的速度快, 但是用户是体验不到删除插入和直接更新的速度差,
如果你要更新100个学生的信息, 分别设置不同的值,那么你需要循环100次去更新数据库,
而如果采用删除插入,你只需要两次数据库操作, 虽然插入的数据量会大一些, 但是速度会远高于update.
如果你要更新100个学生的信息, 分别设置不同的值,那么你需要循环100次去更新数据库,
而如果采用删除插入,你只需要两次数据库操作, 虽然插入的数据量会大一些, 但是速度会远高于update.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-03
展开全部
当然是慢了,删除一条数据时,如果是有外键的,或者索引的,都会先检查的,同时删除操作也会记录日志的,再增加一条数据时,也会做同样的操作,而更新数据的话,只会记录日志,和外键关联不大
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询