有500k k2篇文章(joomla),localhost,xampp,joomla 3, 一切都很好,无论是网站还是网站。 mysql管理员,
我刚做了一个更新字符串(需要3个小时才能完成):
UPDATE `#_k2_items` SET `introtext`= replace(`introtext`, '_70.jpg', '_140.jpg')
然后速度急剧下降(无论是网站还是mysql管理员)。
1 - 现在该做些什么来提高速度?
2-如果我改变了表'id'类型的类型(因为我有最多2百万行),速度会不会有任何增加?
答案 0 :(得分:0)
您的MySQL表格已经大量更新,可能需要optimized.
您可能可以通过托管服务访问phpmyadmin。
如果是这样,您可以尝试优化表格。
首先,备份您的数据库。如果您不知道如何做到这一点,请立即停止,在做其他任何事情之前了解如何操作。 (或者你可能会后悔等等)
然后转到phpmyadmin,选择要修复的表,然后单击" Operations"标签
您将找到“表操作”面板。它有一个Optimize链接。点击它。
或者,您可以发出SQL查询
OPTIMIZE TABLE `#_k2_items`;
请注意,这可能需要一段时间,如果有的话,您的网站将无法正常运行。
如果必须再次执行此类操作,请使用WHERE
子句来更新表中的每一行。像这样的东西可以解决这个问题。
UPDATE `#_k2_items` SET `introtext`= replace(`introtext`, '_70.jpg', '_140.jpg')
WHERE introtext LIKE '%_70.jpg%'
没有WHERE
子句,MySQL改变了表的每一行。 replace()
操作不执行任何操作的操作将列更改为相同的值。但它仍然改变了它。这就是为什么操作花了这么长时间并扰乱了桌子的优化。