IT/SQL
MySQL[14] - 메타데이터, 캐릭터셋/콜레이션, 스토리지 엔진
올빼밋.
2022. 6. 6. 18:41
728x90
목차
1. 메타데이터
2. 캐릭터셋/콜레이션
3. 스토리지 엔진
1. 메타데이터
메타데이터의 개념
- 데이터를 위한 데이터
- DB, 테이블의 스키마에 대한 정보를 저장하는 테이블
- DB명 테이블명, 컬럼명, 사용자명, SHOW명령의 결과값, …
- 데이터 사전(Data Dictionary) : Information_schema
- 데이터 디렉토리(Data Directory)
메타데이터 실습
- SHOW DATAVASES;
- SHOW TABLES;
- SHOW TABLE STATUS; // 테이블상태
- SHOW COLUMNS FROM 테이블명; // 테이블의 컬럼명 확인
- SHOW INDEX FROM 테이블명; // 테이블의 인덱스 확인
- SHOW TABLES IN INFORMATION_SCHEMA; // 테이블의 리스트 확인
- DESCRIBE INFORMATION_SHEMA.CHARACTER_SET
INFORMATION_SCHEMA
- Use INFORMATION_SCHEMA; SHOW TABLES; // ROUTINES
- CHARACTER_SETS // SCHEMATA
- COLLATION // STATISTICS
- COLLATION_CHARACTER_SET_APPLICABILITY // TABLES
- COLUMNS // TABLE_CONSTRAINTS
- COLUMN_PRIVILEGES // TRIGGERS
- KEY_COLUMN_USAGE // USER_PRIVILEGES
- REFERENTIAL_CONSTRAINTS // VIEWS
2. 캐릭터셋/콜레이션 —> 문자 인코딩 정보 결정 / 정렬 시 대소문자 구분 여부 결정
CharacterSet/Collation
- 문자인코딩 정보/메타데이터의 일종
- 문자열(VARCHAR, CHAR)의 값을 저장할 때 사용되는 기본정보
- DB/테이블별로 별도 설정 가능
Collation
- 데이터를 정렬(문자간의 비교)할 때 사용하는 정보
- 정렬 시에 대소문자를 구분/비구분여부 설정(Case Sensitive/Insensitive)
- 한글데이터의 경우 무의미
Status;
show variables like character_set_system;
alter database world character set utf8 collate utf8_general_ci;
alter table city character set utf8 collate utf8_general_ci;
create database sampleTestDB default character set utf8 collate utf8_general_ci;
3. 스토리지 엔진
스토리지 엔진(Storage Engine)
- MySQL 엔진 안에 여러 엔진 중에 스토리지 엔진이 따로 있음
- DBMS가 데이터를 CRUD할때 사용하는 기본 컴포넌트
- 대표적으로 MyISAM과 InnoDB등이 있음
- 데이터 접근속도/안정성/트랜잭션의 지원 여부등의 차이가 있음
- 기본값은 InnoDB(MySQL 5.7기준)
ex
SELECT engine, support FROM information_schema.engines WHERE support=‘DEFAULT’
SET default_storage_engine=MyISAM; (리부팅시 리셋)
my.ini 변경
[mysqld] default-storage-engine=MyISAM
윈도우용의 경우
시스템 트레이의 MySQL Notifier에서 Restart 선택
728x90