gpt4 book ai didi

mysql - 更新新插入数据的索引

转载 作者:行者123 更新时间:2023-11-29 00:05:37 27 4
gpt4 key购买 nike

我有一个包含 150 万条记录的 InnoDB 表。该表中的 3 列应用了索引,以便更快地搜索该表。

我即将向该表中添加一批新的 400k 数据。问题是——如何优化这个表?我应该删除当前索引并再次运行创建索引的命令(这样整个表都会被索引)还是有一个命令也会对新数据“扩展索引的影响”?

谢谢大家抽出时间,我在这方面经验不多。

最佳答案

当您向表中添加行时,您的索引将自动更新。

如果您想要最佳性能,请在插入行之前发出这些命令:

  SET unique_checks=0;
SET foreign_key_checks=0;
SET autocommit=0;

这些命令加快了速度,因为它们减少了 MySQL 为每次插入所做的工作。看这里。 http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb-bulk-data-loading.html

然后,当您插入时,每 100 行左右使用此命令:

  COMMIT;

然后,当您完成插入时,发出这些命令:

  SET autocommit=1;
SET foreign_key_checks=1;
SET unique_checks=1;

最后,在插入工作结束时,您可以考虑发出命令

OPTIMIZE TABLE yourTableName

这将重组表和索引。请注意,在重组操作期间,该表将有一段时间无法读取。

关于mysql - 更新新插入数据的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593121/

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