출처
https://mariadb.com/kb/en/mariadb/memory-storage-engine/
MEMORY 저장 엔진
MEMORY Storage Engine
(이전엔 HEAP으로 알려진) MEMORY 저장 엔진의 내용은 디스크보다 메모리에 보관됩니다. |
Contents of the MEMORY storage engine (previously known as HEAP) are stored in memory rather than on disk. |
다른 테이블로부터 데이터의 읽기전용 캐쉬 즉 임시적인 작업 영역에서 사용하는 데 최고입니다. |
It is best-used for read-only caches of data from other tables, or for temporary work areas. |
데이터가 메모리에 보관되기 때문에 정전이나 하드웨어 고장에 매우 취약하며 영원히 데이터를 보관하는 데는 적절하지 않습니다. 사실, 서버가 재시작 하면 MEMORY 테이블은 (정의 파일이 디스크에 저장되기 때문에) 재생성 되지만 그 내용은 비어있을 것입니다. --init-file 서버 시작(startup) 옵션을 사용하여 쿼리로 원하는 내용을 다시 채울 수 있습니다. |
Since the data is stored in memory, it is highly vulnerable to power outages or hardware failure, and is unsuitable for permanent data storage. In fact, after a server restart, |
VARCHAR 같은 변수-길이 타입은 MEMORY 테이블에서 사용될 수 있습니다. BLOB 또는 TEXT 열(column)은 MEMORY 테이블에서 지원되지 않습니다. |
Variable-length types like |
MEMORY 테이블의 최대 총 용량은 max_heap_table_size 시스템 서버 변수를 넘어설 수 없습니다. 테이블이 만들어질 때 이 값은 그 테이블에 적용하며, 서버가 재시작될 때 이 값은 현재 있는 테이블에 적용합니다. 이 값을 바꾸는 것은 현재 있는 테이블에는 효과가 없습니다. 하지만 ALTER TABLE ... ENGINE=MEMORY 문장의 실행은 그 테이블의 max_heap_table_size의 현재 값을 적용합니다. 또한 테이블을 만들기 전에 max_heap_table_size의 세션 값을 변경하는 것이 가능합니다. |
The maximum total size of MEMORY tables cannot exceed the |
MAX_ROWS 테이블 옵션은 당신이 테이블에 저장할 행수에 관해 힌트를 제공합니다. 이 값은 초과할 수 없는 한계는 없지만, max_heap_table_size를 넘어설 수 없습니다. 저장 엔진은 테이블에 할당된 최대 메모리를 계산하는 데 max_heap_table_size와 MAX_ROWS를 사용합니다. |
The |
행이 삭제되었을 때 그 공간은 자동으로 해제되지 않습니다. 테이블을 없애지(drop) 않고 공간을 해제하는 유일한 방법은 ALTER TABLE tbl_name ENGINE = MEMORY 를 사용하는 것입니다. TRUNCATE TABLE도 메모리를 해제합니다. |
When rows are deleted, space is not automatically freed. The only way to free space without dropping the table is using
|
인덱스 타입
Index type
MEMORY 저장 엔진은 B-tree 또는 Hash 인덱스를 허용합니다. 해시는 MEMORY에 대한 기본 타입 입니다. 보관 엔진 인덱스 타입을 보시면 더 많은 성질들을 확인할 수 있습니다. |
The MEMORY storage engine permits indexes to be either B-tree or Hash. Hash is the default type for MEMORY. See Storage Engine index types for more on their characteristics. |
MEMORY 테이블은 64개의 인덱스까지, 각 인덱스당 16개의 열(column)과 최대 키의 길이는 3072바이트까지 가질 수 있습니다. |
A MEMORY table can have up to 64 indexes, 16 columns for each index and a maximum key length of 3072 bytes. |
추가 보기
See also
|
|
예시
Example
다음 예시는 위에서 묘사된 주어진 최대 크기로 MEMORY 테이블을 만드는 방법을 보여줍니다. |
The following example shows how to create a |