MySQL 데이터베이스를 PHP 데이터 객체 (PDO)와 인터페이스하고 광범위한 SQL 쿼리를 실행하고 있습니다. 일반적으로 약 1500ms가 소요됩니다. 여전히 최적화해야합니다. 짧은 간격으로 PHP 스크립트를 두 번 실행하면 쿼리에 약 90ms가 걸립니다. 쿼리는 두 경우 모두 동일합니다. 동일한 쿼리로 스크립트를 실행하면 다시 한 번 1500ms가 걸립니다.
왜 그런 겁니까? 데이터베이스가 자동으로 캐시됩니까? 데이터베이스가 캐시를 저장 한 다음 자동으로 삭제하는 데 시간이 있습니까?
결과는 두 개의 다른 스레드에서 발생하기 때문에 PHP로 캐시 할 수 없다고 가정합니다. 데이터베이스가 변경되었는지 알 수 없기 때문에 PHP가 결과를 캐시하지 않을 것이라고 생각합니다.
데이터베이스에 새 행을 삽입하기 위해 매분마다 스크립트를 실행하고 있습니다. 이것은 또한 얼마 후에 1500ms가 다시 걸리는 이유 일 수도 있습니다. 관련 테이블이 더 이상 동일하지 않기 때문에 캐시가 삭제되었습니다.