首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果索引键未更新,MySQL更新索引吗?

问如果索引键未更新,MySQL更新索引吗?
EN

Database Administration用户
提问于 2016-04-07 18:23:03
回答 2查看 386关注 0票数 1

假设我有一个3列的表:ID (PK), Name, Age.

假设ID有一个索引,name在上面有一个索引,还有另一个将id和name组合在一起的索引。假设我现在有一个update语句,如下所示:

代码语言:javascript
复制
UPDATE table SET AGE = 69 WHERE id = 'some_id';

我只是在更新AGE列,所以即使索引列中没有被修改,MySQL仍然会更新索引吗?

EN

回答 2

Database Administration用户

发布于 2016-04-07 22:57:57

认为当前数据库足够聪明,不更新数据未更改的索引是合乎逻辑的。

但是这种逻辑应该得到Mysql手册的直接支持。我在页面上找到了一条描述Speed of UPDATE Statements的声明:

update语句像SELECT查询一样被优化,并增加了写入的开销。写入的速度取决于要更新的数据量和更新的索引数。未更改的索引不被更新。

票数 1
EN

Database Administration用户

发布于 2016-04-08 03:06:41

代码语言:javascript
复制
UPDATE table SET AGE = 69 WHERE id = 'some_id';

将非常有效地执行,因为id是PRIMARY KEY。

因为AGE不在任何索引中,所以不会修改INDEX。

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

https://dba.stackexchange.com/questions/134696

复制
相关文章

相似问题

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