同事反映在用Drupal Ubercart搭建的网站中添加产品时速度非常慢的问题,产品页面可以编辑,但在添加关联下载文件的时候就需要长时间等待甚至超时报错,先以为是服务器性能或者MySQL的问题,折腾了两天都没有多大效果,今天把排错神器devel安装上,很快就发现是该页面需要运行8000多次数据库查询,而我们现在大约有4000个产品关联文件,也就是该页面需要循环4000次、每次2个数据库查询。
网上搜索了很久(用ubercart feather file slow等关键词都找不到准确的,后来用devel发现的重复MySQL查询名称查到的),终于找到与我们的情况基本一致的_uc_file_gather_files needs to be fixed (or needs config),该文给出了一个补丁解决办法,我们参照修改后,很快就解决了。
开源的系统有好处、有坏处,关键要能修改程序才能按自己的要求来用好。
评论