gpt4 book ai didi

mysql - MySQL 是否更新所有插入的索引?我可以在每次插入 x 后更新它吗?

转载 作者:可可西里 更新时间:2023-11-01 06:32:37 26 4
gpt4 key购买 nike

我有几个关于 MySQL 索引的相关问题:

  1. MySQL 是否会在每次插入内容时更新索引?
  2. 当 MySQL 由于插入更新索引时,是否重建整个索引?
  3. 有没有办法让 MySQL 在每插入 x 次后更新索引?

我的应用程序中有很多插入,恐怕 MySQL 会在每次插入后重建索引。数据不必是实时的,因此我可以在特定数量的插入后更新索引(如果可能的话)。

最佳答案

MySQL 可能已经在尽其所能地执行您描述的操作。

对于 InnoDB(它应该是 MySQL 的默认存储引擎),插入、更新和删除会立即更改主键或唯一键索引。但它们从不重建整个索引,它们将新值添加到这些索引中(或从中取出值)。

对于非唯一索引,InnoDB 执行 change buffering .也就是说,它将更改排队,稍后将在后台合并到索引中。它甚至会合并更改,以便更有效地完成对索引的物理更新。

您无需执行任何操作即可启用此功能,因为它是默认启用的。 MySQL 5.1 只为 INSERT 更改缓冲。 MySQL 5.5 及更高版本还更改了 UPDATEDELETE 的缓冲。

如果需要,您可以禁用此功能(例如,如果您使用 SSD,避免随机 I/O 并不是那么重要,并且您可能希望确保排队的更改不会累积) .通常,您应该保持启用该功能。

关于mysql - MySQL 是否更新所有插入的索引?我可以在每次插入 x 后更新它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com