我正在使用 Joomla 1.5 和 VirtueMart 1.1.3。
每次执行某个查询时都会创建 1.6 GB 的 tmp 文件。这是正常的吗?我认为德德玛特正在使用一个巨大的连接语句来拉取整个产品表和其他几个表。我找到了构建查询的文件,但我不知道从哪里开始优化它。即使我这样做了,mercurialmart 似乎也使用这个文件来构建所有 sql 语句,所以我最终可能会破坏一些东西。
我正在使用 Joomla 1.5 和 VirtueMart 1.1.3。
每次执行某个查询时都会创建 1.6 GB 的 tmp 文件。这是正常的吗?我认为德德玛特正在使用一个巨大的连接语句来拉取整个产品表和其他几个表。我找到了构建查询的文件,但我不知道从哪里开始优化它。即使我这样做了,mercurialmart 似乎也使用这个文件来构建所有 sql 语句,所以我最终可能会破坏一些东西。
您可以查看MySQL 慢查询日志(和/或启用它)以查看特定查询占用时间和空间。有了这些,您可以使用 MySQL 的EXPLAIN功能来查看查询缓慢的原因。
如果幸运的话,VirtueMart 开发人员根本没有在他们的表中添加有效的索引,这导致 MySQL 不得不以缓慢的方式做事(即文件排序等)。如果您不走运,更改架构将无济于事,您必须与 VirtueMart 开发人员一起解决这个问题,或者自己修复它。
无论如何,如果您找到解决方案,您可能应该让 VirtueMart 团队知道。
祝你好运!