我正在尝试优化我的mysql表(MyISAM),我用phpmyadmin更改了一些列类型,主要是从int到smallint,中等int等。之后我做了那个mysql真的陷入困境,服务器负载真的很高。我在一个现场网站上做了这个,我认为这是问题所在,但即使在将网站置于维护模式并等待负载下降之后,负载仍然在疯狂之后。最后,我必须删除表并使用原始列类型重新创建它们,以便顺利工作......那么在更改列类型之前和之后我应该做些什么特别的事情?
连接具有两种不同列类型的表是否也会产生问题? I.E. id INT(11)与MEDIUMINT(8)连接。我想有一次我做到了。
答案 0 :(得分:1)
你说:
“连接具有两种不同列类型的表是否也会产生问题?I.E. id INT(11)加入MEDIUMINT(8)。我想我曾经这样做过。”
是。这可能会导致性能下降,因为当您对两列不同类型的列进行连接时,RBDMS必须对其中一列中的每个值执行即时类型转换,以匹配另一列中的类型,以便它可以执行比较。因此,您加入的列应始终具有相同的类型,最好也使用外键(如果您使用的是InnoDB表类型)。