我正在使用 PDO 从 MySQL 数据库获取结果。
如果我只执行执行语句,大约需要8 秒
。 (连续做同样的事情 350 次。)
添加 fetchAll()
语句时,时间最长为 28 秒。这是正常行为吗?
我在 Web 服务器和数据库服务器之间进行了网络测试速度,大约为 87 Mbits/sec,因此这不会是问题所在。有什么想法吗?
最佳答案
8 秒的执行时间也长得离谱 - 并且这表明您没有正确为表建立索引。因此,从表中获取数据需要很长时间。它也可能使用临时表。
确保您有任何用于“搜索”的字段或在已索引的连接表中用作搜索键的字段。索引的正确性有点棘手 - 但要进行测试,请在查询之前添加“EXPLAIN”并打印出结果 - 每个表都会得到一行。如果您有任何“使用 WHERE”或“创建临时表”,那么您可能需要通过在这些表上添加索引来删除这些内容。
关于php - PDO fetchAll 需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14397922/