• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    6. InnoDB 테이블 관리
    1. InnoDB 테이블 만들기
    2. 다른 컴퓨터에 InnoDB 테이블의 이동 또는 복사
    3. 트랜잭션을 사용하여 DML 작업 그룹화
    4. MyISAM에서 InnoDB의 테이블 변환
    5. InnoDB에서 AUTO_INCREMENT 처리
    6. InnoDB 및 FOREIGN KEY 제약
    7. InnoDB 테이블에서의 제한
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. InnoDB 문제 해결
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

14.6.1 InnoDB 테이블 만들기

InnoDB 테이블을 만들려면 특별한 어구없이 CREATE TABLE 문을 사용합니다. 이전에는 ENGINE=InnoDB 절이 필요했지만, InnoDB 가 기본 스토리지 엔진이 되었기 때문에 필요 없습니다. (기본 스토리지 엔진이 MyISAM 인 MySQL 5.1 이전 버전이 실행되는 서버에서 mysqldump 또는 복제를 사용하여 CREATE TABLE 문을 재현하려는 경우에는 해당 조항을 계속 사용할 수 있습니다.)

-- Default storage engine = InnoDB.
CREATE TABLE t1 (a INT, b CHAR (20), PRIMARY KEY (a));
-- Backward-compatible with older MySQL.
CREATE TABLE t2 (a INT, b CHAR (20), PRIMARY KEY (a)) ENGINE=InnoDB;

innodb_file_per_table 설정에 따라 InnoDB 는 시스템 테이블 스페이스 에서 또는 테이블마다 별도의 테이블 스페이스 ( .ibd 파일 로 표시됩니다) 내에 각 테이블과 연관된 기본 키 인덱스가 생성됩니다. MySQL은 MySQL 데이터베이스 디렉토리 아래에있는 test 디렉토리에 t1.frm 및 t2.frm 파일이 생성됩니다. 내부적으로 InnoDB 자체 데이터 사전 테이블 항목이 추가됩니다. 이 항목은 데이터베이스 이름이 포함됩니다. 예를 들어, t1 테이블이 생성 된 데이터베이스가 test 인 경우, 항목은 'test/t1' 입니다. 즉, 다른 여러 데이터베이스에 같은 이름 t1 테이블을 만들 수 있으며, InnoDB 내부에서 테이블 이름 충돌은 발생하지 않습니다.

이 테이블의 특성을 표시하려면 SHOW TABLE STATUS 명령문을 발행합니다.

 SHOW TABLE STATUS FROM test LIKE 't %'\ G;

상태 출력은 이러한 첫 번째 테이블의 행 형식 특성을 「Compact」 임을 표시됩니다. 이 설정은 기본적인 실험에는 적합하지만, 가장 강력한 InnoDB 의 성능 기능을 활용하려면 바로 「Dynamic」 또는 「Compressed」 등의 다른 행 포맷의 사용으로 가십시오. 이 값을 사용하려면 먼저 약간의 설정이 필요합니다.

SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=barracuda;
CREATE TABLE t3 (a INT, b CHAR (20), PRIMARY KEY (a)) ROW_FORMAT=DYNAMIC;
CREATE TABLE t4 (a INT, b CHAR (20), PRIMARY KEY (a)) ROW_FORMAT=COMPRESSED;

반드시 InnoDB 테이블마다 기본 키 를 설정하고 다음과 같은 컬럼 (여러 적용될 수 있음)을 지정하십시오.

  • 가장 중요한 쿼리에서 참조된다.

  • 공백되어 있지 않다.

  • 중복 값이​​ 없다.

  • 삽입 후 값이 변경된다하더라도 극히 드물다.

예를 들어, 사람에 대한 정보를 포함하는 테이블에서 여러 사람이 같은 이름을 가질 가능성도있어 성을 공백으로하거나 이름을 변경하거나하는 사람도 있기 때문에 (名、姓) 에 기본 키 를 작성하지 않습니다. 제약이 많은 기본 키로 사용하는 명확한 컬럼 세트가없는 것도 많을 경우에는 기본 키의 전부 또는 일부로하는 숫자 ID의 새로운 컬럼을 작성하십시오. 행이 삽입되면 자동으로 오름차순 값이 입력되도록 자동 증가 컬럼을 선언 할 수 있습니다.

-- The value of ID can act like a pointer between related items in different tables.
CREATE TABLE t5 (id INT AUTO_INCREMENT, b CHAR (20), PRIMARY KEY (id));
-- The primary key can consist of more than one column. Any autoinc column must come first.
CREATE TABLE t6 (id INT AUTO_INCREMENT, a INT, b CHAR (20), PRIMARY KEY (id,a));

기본 키를 정의하지 않아도 테이블은 정상적으로 작동하지만 주키는 많은 성능 요소와 관련하여 큰 테이블이나 자주 사용되는 테이블 중요한 설계 요소입니다. 항상 CREATE TABLE 문에서 지정하는 습관을하십시오. (테이블을 만들고 데이터를로드 한 후 ALTER TABLE 을 실행하고 나중에 기본 키를 추가하는 경우 작업 테이블을 만들 때 기본 키를 정의하는 것보다 훨씬 많은 시간이 걸립니다.)

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved