将列从长文本更改为中文本需要1个多小时



我将html作为文本存储在数据库中,最初我使用长文本,因为我只是认为它是我所需要的。我使用全文从数据库中查询我的html和url,这需要很长的时间和内存,所以我认为这是我查询的大量html,并决定将长文本更改为中文本以使其更快,我有大约40000行,所以我需要在它变高之前更改它。运行查询后,它花费了很长时间,而且已经超过了1个半小时。这通常需要多少时间,还是我可能在某个地方搞砸了?

ALTER必须复制整个表并重新生成所有(?(索引。这就是";很长一段时间";。

本质上,LONGTEXTMEDIUMTEXT之间的唯一区别是

  • 对于该列的"长度",每行增加一个字节
  • 存储数据的限制——也就是说,当存储到MEDIUMTEXT中时,17MB的字符串将被截断为16KB

这两者都不会影响内存分配或磁盘分配(除了1字节(或任何东西的速度。在这两种情况下,HTML都是以3或4字节的长度存储的,然后是你给它的多少HTML

如果您遇到性能问题,请提供慢速查询和SHOW CREATE TABLE

最新更新