我试图优化一个长期未被优化的表格。 它有大约250万行,1.3 GB的数据和152 MB的索引。 大约15分钟前我开始优化,我不知道需要多长时间。
该服务器是相当强大的(四Xeon与4GB内存),并有500MB的innodb缓冲池大小。
我应该期望这需要几分钟,几小时或几天吗?
这很大程度上取决于表中数据的状态和硬件,但innodb alter table操作的典型上限是复制整个表所需的时间+对索引进行sorting所需的时间。
你确定你没有用完磁盘空间吗?
答案显然是1小时20分钟。 我不确定这是一个“正常”的时间,还是由于我的设置中的低效率而延迟了。
我不确定为什么,但有时这样的操作需要几个小时。 我目睹了两个小时的跑步,听说了一个8小时的跑步。 为了修改一个表,MySQL不仅可以将其复制到一个新表中,而且还可以对其进行重新索引。 这是它通常花费在大部分时间的地方。 如果你检查PROCESSLIST,它很可能会说它正在创build索引或sorting索引。
这是不正常的,但不幸的是,它发生。