MariaDB 스터디 · · 2 min read

메모리 스토리지 엔진

특징

  • 메모리 스토리지 엔진을 사용하는 테이블의 데이터는 디스크를 사용하지 않고 메모리 내에만 저장되고 엑세스 된다.

  • 메모리 스토리지 엔진을 사용하는 테이블의 최대 총 용량은 max_heap_table_size 시스템 서버 변수를 넘어설 수 없다.

  • 메모리 스토리지 엔진을 사용하는 테이블의 행이 삭제되었을 때 자동으로 메모리를 해제하지 않는다.


장단점

종류내용
장점디스크를 사용하지 않고 메모리만 사용하여 처리속도가 월등히 빠르다.
단점메모리에만 데이터를 적재하여 MariaDB가 종료되면 데이터가 모두 제거된다.
영구적인 데이터 저장 목적으로는 적합하지 않다.

사용처

  • 데이터 유실이 상관없는 임시 테이블

  • 크기가 작고 고정적인 데이터를 가진 테이블


생성

CREATE TABLE tbl_memory(
	idx INT,
	val VARCHAR(10)
)engine=MEMORY max_rows=20

주의 사항

  • 고정 길이 컬럼만 지원

    • 컬럼의 최대 크기는 최대한 작게 ( 최대 크기 만큼 메모리를 차지 )

    • max_rows 옵션을 통한 row 개수 제한

  • LOB (Large Object ) TEXT 타입 미지원

    • 큰 사이즈의 데이터를 다루는 데이터 타입 미지원

결론

메모리 스토리지 엔진은 크기가 작고 고정적인 테이블 또는 임시 테이블에 사용하는 것을 권장한다.


추가

  • 임시 테이블

    • max_heap_table_size 시스템 변수에 설정된 크기 이하면 메모리 스토리지 엔진의 테이블로 생성

    • max_heap_table_size 시스템 변수에 설정된 크기 초과면 Aria 스토리지 엔진의 테이블로 생성

  • performance_schema

    • MariaDB의 성능을 진단할 수 있는 데이터를 저장

    • 메모리 스토리지 엔진의 테이블로 생성하여 저장

    • 메모리 과다점유 위험성