首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么通过more更新MySQL表比插入一行占用更多的时间?

问为什么通过more更新MySQL表比插入一行占用更多的时间?
EN

Stack Overflow用户
提问于 2015-05-18 04:40:38
回答 2查看 44关注 0票数 1

我认为这需要更少的时间,因为这是我的命令:

代码语言:javascript
复制
UPDATE device SET Area = " + btn + " WHERE Name = 1

由于某种原因,这是2160字节,而插入只需要1500个字节,即使我插入的数据比更新的要多。这有什么原因吗?我用Wireshark检查了数字。

是因为MS访问吗?或者是由于MySQL quering是如何工作的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-18 04:46:18

当您执行UPDATE时,如下所示:

代码语言:javascript
复制
UPDATE device SET Area = " + btn + " WHERE Name = 1

您需要发送有关表、列、值和位置限制的信息。但是,当您执行这样的INSERT时:

代码语言:javascript
复制
INSERT INTO device (Area) VALUES (...)

您不需要在WHERE子句中发送限制。这意味着与对相同值执行UPDATE相比,它所需的信息更少。

您可以将INSERT看作是告诉MySQL引擎转到表的末尾并创建一个新记录,而UPDATE强制MySQL搜索整个表以查找要更改的记录。

票数 2
EN

Stack Overflow用户

发布于 2015-05-18 04:54:17

查看这篇文章:Cost of Inserts vs Update in SQL Server

更新在更新之前做一个额外的查找:所以您必须查找行后面的插入。

插入您只是附加到表的末尾。

我认为正在发送更多的信息进行查找。不是一个DBA个人,但上面的帖子可以给你一些洞察力。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30295228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档