我有一个非常大的 MySQL 数据库(大约 100 万个项目),并且正在该数据库上运行一个相当复杂的查询。当我在 phpMyAdmin 中输入 SQL 命令时大约需要 2 秒,但使用 PHP 代码生成相同的输出大约需要 1-2 分钟。
为什么会有这样的时差?如果这是一个执行不当的查询,那么结果是否也需要很长时间才能出现在 phpMyAdmin 中?
最佳答案
你确定你得到的输出完全一样吗?
如果您的数据库中有大量数据,您的查询会返回多少行?
当您使用 phpMyAdmin 启动查询时,它会自动添加分页。
因此,对于这个初始查询:
select *
from test
phpMyAdmin 实际上执行了这个:
select *
from test
limit 0, 30
如果您的查询没有这个限制(当从您的 PHP 脚本执行它时),它可以解释差异:获取 30 行和获取数百/数千/更多行所花费的时间不同(渲染那些也是一样的)。
如果您在查询中使用限制和/或不尝试获取很多行,您可以发布您的代码吗?
(另一个可能的原因是查询缓存:第一次运行查询需要很多时间;下一次,MySQL 将结果保存在缓存中)
关于php - 数据库命令在我的 PHP 脚本中冰冷地运行,在 phpMyAdmin 中快速运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1169836/