본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


RDBMS

DBMS 공부 5 - 메타데이터 , 캐릭터셋/콜레이션 , 스토리지 엔진

반응형

1.메타데이터

  • 통상적으로는 데이터를 위한 데이터를 말하며 RDBMS에서는 데이터를 관리하기위한 데이터를 말한다. 
  • DB, 테이블의 스키마에 대한 정보를 저장하는 테이블
  • DB 명 테이블명 ,컬럼명 ,사용자명 , SHOW 명령어 결과 값 등이 있다.
  • 크게 데이터 사전 , 데이터디렉토리로 나뉜다

 데이터 사전 (Data dictionary) : Information_schema

  • 데이터베이스의 정보들을 저장한다. 
  • 시스템 카탈로그라고도 한다. 
  • 대부분 읽기전용(Read-only)정보들이다.
  • mysql 에선  use Information_schema로 확인할 수 있다.

Information_schema에 있는 테이블들

mysql> show tables;
+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| ADMINISTRABLE_ROLE_AUTHORIZATIONS     |
| APPLICABLE_ROLES                      |
| CHARACTER_SETS                        |
| CHECK_CONSTRAINTS                     |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLLATIONS                            |
| COLUMN_PRIVILEGES                     |
| COLUMN_STATISTICS                     |
| COLUMNS                               |
| COLUMNS_EXTENSIONS                    |
| ENABLED_ROLES                         |
| ENGINES                               |
| EVENTS                                |
| FILES                                 |
| INNODB_BUFFER_PAGE                    |
| INNODB_BUFFER_PAGE_LRU                |
| INNODB_BUFFER_POOL_STATS              |
| INNODB_CACHED_INDEXES                 |
| INNODB_CMP                            |
| INNODB_CMP_PER_INDEX                  |
| INNODB_CMP_PER_INDEX_RESET            |
| INNODB_CMP_RESET                      |
| INNODB_CMPMEM                         |
| INNODB_CMPMEM_RESET                   |
| INNODB_COLUMNS                        |
| INNODB_DATAFILES                      |
| INNODB_FIELDS                         |
| INNODB_FOREIGN                        |
| INNODB_FOREIGN_COLS                   |
| INNODB_FT_BEING_DELETED               |
| INNODB_FT_CONFIG                      |
| INNODB_FT_DEFAULT_STOPWORD            |
| INNODB_FT_DELETED                     |
| INNODB_FT_INDEX_CACHE                 |
| INNODB_FT_INDEX_TABLE                 |
| INNODB_INDEXES                        |
| INNODB_METRICS                        |
| INNODB_SESSION_TEMP_TABLESPACES       |
| INNODB_TABLES                         |
| INNODB_TABLESPACES                    |
| INNODB_TABLESPACES_BRIEF              |
| INNODB_TABLESTATS                     |
| INNODB_TEMP_TABLE_INFO                |
| INNODB_TRX                            |
| INNODB_VIRTUAL                        |
| KEY_COLUMN_USAGE                      |
| KEYWORDS                              |
| OPTIMIZER_TRACE                       |
| PARAMETERS                            |
| PARTITIONS                            |
| PLUGINS                               |
| PROCESSLIST                           |
| PROFILING                             |
| REFERENTIAL_CONSTRAINTS               |
| RESOURCE_GROUPS                       |
| ROLE_COLUMN_GRANTS                    |
| ROLE_ROUTINE_GRANTS                   |
| ROLE_TABLE_GRANTS                     |
| ROUTINES                              |
| SCHEMA_PRIVILEGES                     |
| SCHEMATA                              |
| SCHEMATA_EXTENSIONS                   |
| ST_GEOMETRY_COLUMNS                   |
| ST_SPATIAL_REFERENCE_SYSTEMS          |
| ST_UNITS_OF_MEASURE                   |
| STATISTICS                            |
| TABLE_CONSTRAINTS                     |
| TABLE_CONSTRAINTS_EXTENSIONS          |
| TABLE_PRIVILEGES                      |
| TABLES                                |
| TABLES_EXTENSIONS                     |
| TABLESPACES                           |
| TABLESPACES_EXTENSIONS                |
| TRIGGERS                              |
| USER_ATTRIBUTES                       |
| USER_PRIVILEGES                       |
| VIEW_ROUTINE_USAGE                    |
| VIEW_TABLE_USAGE                      |
| VIEWS                                 |
+---------------------------------------+

 데이터디렉토리(Data Directory)

  • DBMS의 모든 데이터가 저장되는 디렉토리
  • DB저장 , 상태 및 로그저장

 

2. 캐릭터셋 / 콜레이션

-캐릭터셋

  • 문자인코딩 정보 / 메타데이터의 일종
  • 문자열(varchar, char) 의 값을 저장할 때 사용되는 기본정보
  • DB/테이블별로 별도 설정 가능하다.
  • mysql 에선 default 로 utf-8이 지정된다.   

 

 - 콜레이션

  • 데이터를 정렬 (문자간의 비교) 할 때 사용하는 정보
  • 정렬 시에 대소문자를 구분/ 비구분 여부를설정한다(case sensitive / insensitive);
  • 한글데이터에서는 무의미 하다.
  • utf8-general-ci이 기본값이며 ci는 (character insensitive를 의미한다.)

 

mysql 기본 캐릭터셋을 확인하라
world DB/city table 캐릭터셋 /콜레이션을 각각 utf8/ utf8_general_ci로 설정하라
sampleTestDB를 utf8/utf8_general_ci로 지정하고 생성하라

status ; //mysql 기본 상태를 확인하는 명령어
alter database world character set utf8 collate utf8_general_ci;
alter table city character set utf8 collate utf8_general_ci;
create databse sampleTestDB default character set utf8 collate utf8_general_ci;

 

3. 스토리지 엔진

  • 데이터베이스엔진이라고도 불린다. 
  • DBMS가 데이터를 CRUD 할 때 사용하는 기본 컴포넌트이다 .
  • 대표적으로 MyISAM과 InnoD등이 있다 .
  • 데이터 접근 속도 / 안정성/ 트랜젝션의 지원 여부등의 차이가 있다 . 
  • 기본값은 InnoDB이다(Mysql 5.7 이상)

InnoDB - 트랜잭션 지원 / 업데이트 위주 / 줄단위 락/  복구용이 /동시처리성능 높음

MyISAM - 상대적으로 성능은 높다 / 읽기 위주 / 테이블단위 락

 

Mysq 기본 스토리지 엔진을 확인하라.
기본 스토리지엔진을 변경하라.

 

기본 엔진 확인
기본엔진 변경

기본 스토리지 엔진 변경은 위의 방식말고도 my.cnf에서 default-storge-engine 옵션을 추가하여 변경할 수 있으며 mysql 서버

재부팅이  필요하다.  요즘엔 innoDB를 주로 사용하니 이런것이 있다 알아두기만 해도 좋을것 같다.

 

my.cnf 에서 스토리지 엔진 설정

 

반응형