Sto interfacciando un database MySQL con PHP Data Objects (PDO) ed eseguendo una query SQL estesa. Normalmente, ci vogliono circa 1500 ms; Devo ancora ottimizzarlo. Quando eseguo lo script PHP due volte con un breve intervallo tra, la query richiede solo circa 90 ms. La query è in entrambi i casi la stessa. Quando eseguo lo script, con la stessa query, dopo qualche tempo, ci vogliono ancora 1500 ms.
Perché? Il database memorizza automaticamente nella cache? C'è un po 'di tempo in cui il database salva la cache e poi la elimina automaticamente?
Presumo che i risultati non possano essere memorizzati nella cache da PHP, perché ciò accade in due thread diversi. Non credo che PHP memorizzerebbe nella cache i risultati, perché non può sapere se il database è cambiato.
Ho uno script in esecuzione ogni minuto per inserire nuove righe nel database. Questo potrebbe anche essere il motivo che impiega di nuovo 1500 ms dopo qualche tempo; la cache sarebbe stata eliminata, perché le tabelle pertinenti non sono più le stesse.