在编写索引时重启MySQL是不是很糟糕?

时间:2011-02-08 17:26:45

标签: mysql

我的文件中包含大约40个CREATE INDEX语句。我不久前将这个文件提供给了我的生产数据库,它目前正在运行命令。

不久前,我不小心在我的生产数据库上运行了几个慢查询,现在恐怕我可能已经搞砸了这些工作。通常,当我运行一个令人无法接受的慢查询时,我重新启动MySQL,但我不确定我是否想这样做,因为我不知道在MySQL运行这些CREATE INDEX语句时是否可以这样做。

对于更多上下文,如果我运行select * from information_schema.statistics where index_name like 'index_%',我通常会看到每隔几分钟就出现一个新索引,但它似乎已经停留在14个索引上一段时间了。

我应该重新启动服务器吗?

1 个答案:

答案 0 :(得分:1)

没有问题。使用show create table FOO查看您缺少的索引并应用它们。最后,您可以执行optimize table来重建所有索引。

请注意,如果这40个create index语句位于同一个表中,那么您应该定义将此(以及任何进一步的)查询重写为单个查询。否则你等待的时间比你多39倍。