2009-07-17 2 views
1

준비된 쿼리가 어떻게 작동하는지 궁금합니다. PHP와 MySQL을 사용하고 있습니다.준비된 쿼리는 서버 측에서 얼마나 오래 지속됩니까?

나는 준비된 쿼리가 쿼리를 컴파일 한 다음 반복되는 사용은 매개 변수 만 변경하면되므로 시간이 절약된다는 것을 알고 있습니다. 그러나 컴파일 된 쿼리는 얼마 동안 효과가 있습니까? 어느 시점에서 재평가되어야합니까? PHP 스크립트가 실행되는 동안 그대로입니까? 아니면 데이터베이스에 연결되어있는 한 그것은 무엇입니까? 이 경우, 지속적인 연결이 그것에 영향을 미칩니 까?

답변

4

개, 그들은 연결 길이 동안 지속됩니다. MySQL 매뉴얼에 따라 :

prepared statement는 작성된 세션에만 해당됩니다. 이전에 준비된 명령문의 할당을 해제하지 않고 세션을 종료하면 서버는 자동으로 해당 명령문을 할당 해제합니다.

영구 연결을 사용하지 않는 경우 스크립트 실행이 끝나거나 명시 적으로 할당을 해제하거나 연결을 닫을 때 할당이 해제됩니다. 영구 연결을 사용하는 경우 동일한 영구 연결을 사용하여 여러 PHP 세션에서 지속됩니다.

+0

단, 길게 만 설정할 수있는 경우 – Xeoncross

0

내가 아는 한 준비된 쿼리는 범위를 유지하는 변수를 저장하는 동안에 만 지속됩니다. 나중에 사용할 준비된 쿼리를 캐시 할 수있는 몇 가지 방법이있을 수 있지만 MySQL에서이를 수행하는지는 알 수 없습니다.

0

hobodave 잘, 그들은 단지 그들이에서 만든 세션으로 오래 지속

도 고려하는 것이 한 가지있다 :.

7.5.5. 쿼리 캐시가 준비된 명령문에 사용되지 않는

MySQL의 쿼리 캐시

참고. 준비된 문을 사용하는 경우 이러한 문은 쿼리 캐시에 의해 으로 만족되지 않습니다.

관련 문제