2017-04-19 1 views
0

그래서 내 상사가 저에게 최적화 된 저장 프로 시저를주었습니다. 프로 시저가 프로세스에서 임시 테이블을 만들고 이상하게 보입니다 :임시 테이블을 MySQL에서 재사용 할 수 있습니까?

/* pseudocode for brevity */ 
create temp_table; 

insert into temp_table (...) 
    select ... 
    from other_table 
    inner join ... 
    inner join ... 
    where condition 

select * from temp_table 

그래서 그게 전부입니다. 이 코드는 임시 테이블에 데이터를 삽입하여 바로 뒤에서 검색합니다. 여기에 내가 무슨 짓을했는지, 내가 임시 테이블을 제거하고 직접 선택한 레코드를 반환 :

/* pseudocode for brevity */ 
select ... 
from other_table 
inner join ... 
inner join ... 
where condition 

코드는 이전에 잘못 보이는,하지만 임시 테이블이 무엇을해야 할. 그래서 임시 테이블에 대해 읽고 임시 테이블이 지속되고 단일 세션에서만 액세스 할 수 있다고 생각했습니다. 내 질문 :

  1. 세션의 의미는 무엇입니까? 응용 프로그램 쪽에서 연결을 열면 임시 테이블을 다시 사용할 수 있습니까? 그게 왜 임시 테이블이 있는지 궁금해.
+1

https://dba.stackexchange.com/a/57976/10827 –

답변

1

데이터베이스의 세션은 연결 닫기를 열기 사이의 작업을 의미합니다.

예 : 응용 프로그램 측면에서 저장 프로 시저를 호출하려고하면 DB에 대한 연결을 엽니 다. 연결이 종료 될 때까지 사용할 수있는 임시 테이블의 범위

관련 문제