2008年10月25日星期六

PHPWind论坛数据库优化时提示EXTENDED错误的解决方法

近日樂思蜀将服务器MySQL版本升级后,SEO论坛在后台优化数据库时出现下面提示信息,到PHPWind官方论坛上去查找,只见提同样问题的,不见一个可行的解决办法。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTENDED' at line 1 ( 1064 )

因不影响正常使用,也就没太在意。今日偶然想起,打开 PHPWind 程序的此文件,解决了问题,现分享方法如下。

打开“安装目录/admin/repair.php文件”,将下面一行中的 EXTENDED 删除:
$query = $db->query("OPTIMIZE TABLE $table EXTENDED ");

参考了相关资料,EXTENDED 参数用在 MySQL 数据库修复数据表时(只对MyISAM和ARCHIVE类型的表有效),起逐行重建索引的效果,同样的参数有:

  • QUICK:最快的选项,只修复索引树。

  • EXTENDED:最慢的选项,需要逐行重建索引。

  • USE_FRM:只有当MYI文件丢失时才使用这个选项,全面重建整个索引。


老乐也是知其然不知其所以然,抱着试一试的想法去掉 OPTIMIZE 一行中的 EXTENDED 参数,一测试竟然好了。

难道 OPTIMIZE TABLE 不支持 EXTENDED 参数?希望熟悉的朋友留言告诉我一下,我的数据库版本是 5.0.67,谢谢!

1 条评论:

淡泊明志 说...

看到这个问题,在本地电脑的phpmyadmin里面试执行了一下“OPTIMIZE TABLE $table EXTENDED”,结果是没问题的。也就是排除了“难道 OPTIMIZE TABLE 不支持 EXTENDED 参数?”的可能性。我的MySql版本5.0.41比你低一点点。
也许你也可以试试用phpmyadmin单独运行一下这个语句?