ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MEMORY 스토리지 엔진 아키텍처
    Technique/RDBMS 2016. 5. 19. 22:10
    반응형

    MEMORY 스토리지 엔진은 HEAP 스토리지 엔진이라고도 하는데, 이름 그대로 데이터를 메모리에 저장하는 것이 특징이다. 

    MEMORY 스토리지 엔진은 데이터의 크기가 작고 아주 빠른 처리가 필요한 경우에만 적합한 스토리지 엔진이다.


    주의 사항


    - 테이블의 최대 크기

    저장할 수 있는 데이터의 최대 용량이 정해져 있다. 최대 데이터 크기는 max_heap_table_size 파라미터로 정의한다.

    여기 지정한 메모리의 용량이상의 데이터는 가질 수 없으며, 그 이상의 데이터를 INSERT 하려고 하면 데이터 저장이 실패하고 에러 메시지가 출력된다. 이 변수는 글로벌 변수임과 동시에 세션 변수이고, 동적으로 변경 가능한 변수라, 해당 커넥션에서만 파라미터를 재 설정할 수 있다.


    - 고정 길이 컬럼만 지원

    모든 컬럼은 항상 고정 길이로만 생성된다. 따라서 MEMORY 테이블에서는 불필요하게 너무 큰 데이터 타입을 사용하지 않는 것이 좋다. 가능하면 컬럼의 크기는 최소한으로 결정하는 것이 메모리 공간을 절약하는 데 많은 도움이 된다.


    - BLOB이나 TEXT 와 같은 LOB( Large Object ) 타입은 지원하지 않는다.

    대용량 컬럼은 사용할 수 없다. 데이터를 메모리에 저장하기 때문에 어떻게 보면 당연한 제약사항인 듯하다.


    - MEMORY 테이블은 기본적으로 해시 인덱스 적용

    InnoDB나 MyISAM 테이블을 생성할 때 별다른 내용을 명시하지 않고 인덱스를 생성하면 기본적으로 B-Tree 인덱스가 생성되지만 MEMORY 스토리지 엔진을 사용한다면 해시 인덱스를 생성한다 


    용도


    사실 MEMORY 테이블은 MySQL엔진이 쿼리를 처리하는 과정에서 임시로 생성되는 임시 테이블 ( Temporary table ) 용도로 더 자주 사용된다. 임시 테이블의 특징은 해당 커넥션에서만 유효하다는 점이다.

    항상 MEMORY 테이블로 임시 테이블을 만드는 것은 아니지만 대부분의 경우 MEMORY 스토리지 엔진을 사용해 임시 테이블을 생성한다.


    반응형

    'Technique > RDBMS' 카테고리의 다른 글

    바이너리 로그, 릴레이 로그  (0) 2016.05.22
    에러 로그 파일  (0) 2016.05.19
    MyISAM 스토리지 엔진 아키텍처  (0) 2016.05.19
    복제 ( Replication )  (0) 2016.05.17
    플러그인 스토리지 엔진 모델  (0) 2016.05.16

    댓글

Designed by Tistory.