안녕하세요. 고수님들..
oracle만 하다 mysql은 처음하는 초보입니다.
linux 에서 C언어로 mysqlclient.a 를 사용하여 mysql 5.1서버에 접속하여 stored procedure를 사용하고 있습니다.
디비 사용 방법은 아래와 같습니다.
call 프로시져(IN, @OUT인자1, @OUT인자2);
select @OUT인자1, @OUT인자2;
oracle에서는 한번 연결하고 commit만 하면 해당 세션을 close하지 않고 계속 사용할 수 있었는데,
mysql에서 이런 방법을 사용하려고 mysql_free_result(result) 함수를 한번 호출하지 않고, 아래와 같은 방법으로 메모리를 해제 시키고 있습니다.
while(mysql_more_results(&mysql_handle))
{
if(mysql_next_result(&mysql_handle))
{
result = mysql_use_result(&mysql_handle);
mysql_free_result(result);
}
}
그런데 이 방법을 사용하면 close없이 계속 mysql 사용은 가능하지만 메모리가 해제되지 않아 계속 증가하는 현상이 발생하고 있습니다.
어떻게 하면 메모리 해제가 가능한지 고수님들의 도움이 필요합니다. |