我正在将MySQL数据库与PHP数据对象(PDO)接口并执行广泛的SQL查询。通常,大约需要1500毫秒;我仍然需要对其进行优化。当我两次运行PHP脚本并且间隔很短时,查询只需要90毫秒。在两种情况下查询都是相同的。当我使用相同的查询运行脚本时,再次经过一段时间后,又需要1500毫秒。
这是为什么?数据库会自动缓存吗?数据库是否有一段时间保存高速缓存,然后自动将其删除?
我假设结果不能被PHP缓存,因为这发生在两个不同的线程中。我不认为PHP会缓存结果,因为它不知道数据库是否已更改。
我每分钟都会运行一个脚本,以向数据库中插入新行。这也可能是一段时间后再次花费1500毫秒的原因。缓存将被删除,因为相关的表不再相同。