首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不管更新字段如何,数据库更新强制索引是否重新生成?

不管更新字段如何,数据库更新强制索引是否重新生成?
EN

Database Administration用户
提问于 2014-11-21 20:56:23
回答 1查看 815关注 0票数 2

有了MySQL (InnoDB),我知道索引会减慢更新查询的速度。我想知道是否会发生这种情况,而不管更新的是哪些字段。

例如,如果我有一个包含20个字段的表,其中的前10个字段在单个索引或覆盖索引中都被引用,那么对其他10个非索引字段的更新速度是否会受到影响?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-11-22 04:01:24

首先,看看InnoDB体系结构(来自Percona的首席技术官Vadim )

更新索引列时,更改必须通过此体系结构迁移,如下所示:

  • 从缓冲池的插入缓冲区部分到ibdata1中的插入缓冲区
  • 从缓冲区池的脏页到表物理文件(.ibd文件)

如果您正在更新非索引列,唯一的瓶颈将是通过写I/O线程将脏页中的刷新更改转移到.ibd文件。非索引列将不涉及索引更改缓冲。

如果您有MySQL 5.5/5.6,您可能希望增加诺姆b诺姆b,以提高写入性能。

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

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

复制
相关文章

相似问题

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