• 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 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 1. INFORMATION_SCHEMA CHARACTER_SETS Table
    2. INFORMATION_SCHEMA COLLATIONS Table
    3. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY Table
    4. INFORMATION_SCHEMA COLUMNS Table
    5. INFORMATION_SCHEMA COLUMN_PRIVILEGES Table
    6. INFORMATION_SCHEMA ENGINES Table
    7. INFORMATION_SCHEMA EVENTS Table
    8. INFORMATION_SCHEMA GLOBAL_STATUS and SESSION_STATUS Tables
    9. INFORMATION_SCHEMA GLOBAL_VARIABLES and SESSION_VARIABLES Tables
    10. INFORMATION_SCHEMA KEY_COLUMN_USAGE Table
    11. INFORMATION_SCHEMA OPTIMIZER_TRACE Table
    12. INFORMATION_SCHEMA PARAMETERS Table
    13. INFORMATION_SCHEMA PARTITIONS Table
    14. INFORMATION_SCHEMA PLUGINS Table
    15. INFORMATION_SCHEMA PROCESSLIST Table
    16. INFORMATION_SCHEMA PROFILING Table
    17. INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS Table
    18. INFORMATION_SCHEMA ROUTINES Table
    19. INFORMATION_SCHEMA SCHEMATA Table
    20. INFORMATION_SCHEMA SCHEMA_PRIVILEGES Table
    21. INFORMATION_SCHEMA STATISTICS Table
    22. INFORMATION_SCHEMA TABLES Table
    23. INFORMATION_SCHEMA TABLESPACES Table
    24. INFORMATION_SCHEMA TABLE_CONSTRAINTS Table
    25. INFORMATION_SCHEMA TABLE_PRIVILEGES Table
    26. INFORMATION_SCHEMA TRIGGERS Table
    27. INFORMATION_SCHEMA USER_PRIVILEGES Table
    28. INFORMATION_SCHEMA VIEWS Table
    29. InnoDB의 INFORMATION_SCHEMA Table
    30. MySQL Cluster INFORMATION_SCHEMA Table
    31. Thread Pool INFORMATION_SCHEMA Tables
    32. Extensions to SHOW Statements
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

제21장 INFORMATION_SCHEMA Tables

목차

21.1 INFORMATION_SCHEMA CHARACTER_SETS 테이블
21.2 INFORMATION_SCHEMA COLLATIONS 테이블
21.3 INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY 테이블
21.4 INFORMATION_SCHEMA COLUMNS 테이블
21.5 INFORMATION_SCHEMA COLUMN_PRIVILEGES 테이블
21.6 INFORMATION_SCHEMA ENGINES 테이블
21.7 INFORMATION_SCHEMA EVENTS 테이블
21.8 INFORMATION_SCHEMA GLOBAL_STATUS 및 SESSION_STATUS 테이블
21.9 INFORMATION_SCHEMA GLOBAL_VARIABLES 및 SESSION_VARIABLES 테이블
21.10 INFORMATION_SCHEMA KEY_COLUMN_USAGE 테이블
21.11 INFORMATION_SCHEMA OPTIMIZER_TRACE 테이블
21.12 INFORMATION_SCHEMA PARAMETERS 테이블
21.13 INFORMATION_SCHEMA PARTITIONS 테이블
21.14 INFORMATION_SCHEMA PLUGINS 테이블
21.15 INFORMATION_SCHEMA PROCESSLIST 테이블
21.16 INFORMATION_SCHEMA PROFILING 테이블
21.17 INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS 테이블
21.18 INFORMATION_SCHEMA ROUTINES 테이블
21.19 INFORMATION_SCHEMA SCHEMATA 테이블
21.20 INFORMATION_SCHEMA SCHEMA_PRIVILEGES 테이블
21.21 INFORMATION_SCHEMA STATISTICS 테이블
21.22 INFORMATION_SCHEMA TABLES 테이블
21.23 INFORMATION_SCHEMA TABLESPACES 테이블
21.24 INFORMATION_SCHEMA TABLE_CONSTRAINTS 테이블
21.25 INFORMATION_SCHEMA TABLE_PRIVILEGES 테이블
21.26 INFORMATION_SCHEMA TRIGGERS 테이블
21.27 INFORMATION_SCHEMA USER_PRIVILEGES 테이블
21.28 INFORMATION_SCHEMA VIEWS 테이블
21.29 InnoDB의 INFORMATION_SCHEMA 테이블
21.30 MySQL Cluster의 INFORMATION_SCHEMA 테이블
21.31 스레드 풀의 INFORMATION_SCHEMA 테이블
21.32 SHOW 문 확장

INFORMATION_SCHEMA 는 데이터베이스 메타 데이터에 대한 액세스를 제공하며, 데이터베이스 또는 테이블의 이름, 컬럼의 데이터 타입, 접근 권한 등의 MySQL Server에 대한 정보를 제공합니다. 이 정보에 사용 될 수있는 다른 용어가 데이터 사전과 시스템 카탈로그입니다.

INFORMATION_SCHEMA 데이터베이스의 사용상의주의

INFORMATION_SCHEMA 는 각 MySQL 인스턴스 내의 데이터베이스이며, MySQL Server가 보유하는 다른 모든 데이터베이스에 대한 정보를 저장하는 장소입니다. INFORMATION_SCHEMA 데이터베이스에는 여러 읽기 전용 테이블이 포함됩니다. 여기에는 실제로 뷰가 있으므로 연결된 파일이 아니라 트리거는 설정할 수 없습니다. 또한 그 이름을 가진 데이타베이스가 없습니다.

USE 문을 사용하여 기본 데이터베이스로 INFORMATION_SCHEMA 를 선택할 수 있지만 수행 할 수있는 작업은 테이블 내용의 읽기만하고 테이블에 대한 INSERT , UPDATE , DELETE 작업을 수행 할 수 없습니다.

Example

다음 INFORMATION_SCHEMA 에서 정보를 검색 문의 예를 보여줍니다.

mysql> SELECT table_name, table_type, engine
    -> FROM information_schema.tables
    -> WHERE table_schema = 'db5'
    -> ORDER BY table_name;
+------------+------------+--------+
| table_name | table_type | engine |
+------------+------------+--------+
| fk         | BASE TABLE | InnoDB |
| fk2        | BASE TABLE | InnoDB |
| goto       | BASE TABLE | MyISAM |
| into       | BASE TABLE | MyISAM |
| k          | BASE TABLE | MyISAM |
| kurs       | BASE TABLE | MyISAM |
| loop       | BASE TABLE | MyISAM |
| pk         | BASE TABLE | InnoDB |
| t          | BASE TABLE | MyISAM |
| t2         | BASE TABLE | MyISAM |
| t3         | BASE TABLE | MyISAM |
| t7         | BASE TABLE | MyISAM |
| tables     | BASE TABLE | MyISAM |
| v          | VIEW       | NULL   |
| v2         | VIEW       | NULL   |
| v3         | VIEW       | NULL   |
| v56        | VIEW       | NULL   |
+------------+------------+--------+
17 rows in set (0.01 sec)

설명 :이 문은 데이터베이스 db5 에있는 모든 테이블의 목록을 요청하는 테이블의 이름, 유형, 스토리지 엔진의 3 가지 정보 만 보여줍니다.

문자 집합 고려 사항

문자 컬럼 ( TABLES.TABLE_NAME 등)의 정의는 일반적으로 VARCHAR( N ) CHARACTER SET utf8 이며, 여기서 N 은 적어도 64입니다. MySQL은 이러한 컬럼에서 모든 검색, 정렬, 비교 및 다른 문자열 조작이 캐릭터 세트 ( utf8_general_ci )의 기본 데이터 정렬을 사용합니다.

일부 MySQL 개체는 파일로 표현되므로 INFORMATION_SCHEMA 문자열 컬럼에서의 검색은 파일 시스템에서 대소 문자 구별에 의해 영향을받을 수 있습니다. 자세한 내용은 섹션 10.1.7.9 "데이터 정렬과 INFORMATION_SCHEMA 검색" 을 참조하십시오.

SHOW 명령문의 대체 방법으로 INFORMATION_SCHEMA

SELECT ... FROM INFORMATION_SCHEMA 문은 MySQL이 지원하는 다양한 SHOW 문 ( SHOW DATABASES , SHOW TABLES 등)에 의해 제공된 정보에 액세스하기위한 일관된 방법으로 사용할 수 있습니다. SELECT 는 SHOW 에 비해 다음과 같은 장점이 있습니다.

  • 모든 액세스가 테이블에서 이루어지기 때문에 Codd의 규칙을 준수하고 있습니다.

  • SELECT 문 익숙한 구문을 사용할 수 학습이 필요한 일부 테이블 및 컬럼의 이름뿐입니다.

  • 구현자는 키워드의 추가에 대해 걱정할 필요가 없습니다.

  • INFORMATION_SCHEMA 쿼리의 결과를 필터링, 정렬, 연결할 수 있으며, 구문 분석하는 데이터 구조와 텍스트 표현 등 응용 프로그램에 필요한 모든 형식으로 변환 할 수 있습니다.

  • 이 기술은 다른 데이터베이스 시스템과의 상호 운용성이 우수합니다. 예를 들어, Oracle Database 사용자는 Oracle 데이터 사전 테이블의 쿼리에 익숙해 져 있습니다.

SHOW 잘 알려져 널리 사용되고 있기 때문에, SHOW 문은 계속 대체 방법으로 사용할 수 있습니다. 실제로 섹션 21.32 "SHOW 명령문의 확장" 에서 설명하고있는 바와 같이, INFORMATION_SCHEMA 의 구현에 따라 SHOW 확장이 이루어지고 있습니다

권한

각 MySQL 사용자는 이러한 테이블에 대한 액세스 권한이 있지만 사용자가 적절한 권한을 가진 오브젝트에 대응 한 테이블의 행만을 표시 할 수 있습니다. 일부의 경우 (예를 들어 INFORMATION_SCHEMA.ROUTINES 테이블의 ROUTINE_DEFINITION 열)는 권한이 부족한 사용자는 NULL 로 표시됩니다. 이러한 제한은 InnoDB 테이블에는 적용되지 않습니다. PROCESS 권한 만 있으면 이들을 볼 수 있습니다.

동일한 권한이 INFORMATION_SCHEMA 에서 정보의 선택과 SHOW 문을 통해 동일한 정보의 표시에 적용됩니다. 두 경우 모두 객체에 대한 정보를 표시하려면 해당 오브젝트에 대한 어떠한 권한이 필요합니다.

성능 고려 사항

여러 데이터베이스의 정보를 검색 할 INFORMATION_SCHEMA 쿼리는 장시간 소요 성능에 영향을 미칠 수 있습니다. 쿼리의 효율성을 확인하려면 EXPLAIN 을 사용할 수 있습니다. EXPLAIN 출력을 사용한 INFORMATION_SCHEMA 쿼리의 조정에 관한 자세한 내용은 섹션 8.2.4 "INFORMATION_SCHEMA 쿼리 최적화" 를 참조하십시오.

표준 고려 사항

MySQL에서의 INFORMATION_SCHEMA 테이블 구조의 구현은 ANSI / ISO SQL : 2003 표준 파트 11 Schemata을 준수하고 있습니다. SQL : 2003의 핵심 기능 F021 기본 정보 스키마에 거의 부합하는 것을 의도하고 있습니다.

SQL Server 2000 (이것도 표준을 준수하고 있습니다) 사용자라면 매우 유사한 것으로 알 수 있습니다. 그러나 MySQL에서 구현과 관련이없는 많은 컬럼을 생략하고, MySQL 고유의 컬럼을 추가하고 있습니다. 이러한 열 중 하나가 INFORMATION_SCHEMA.TABLES 테이블의 ENGINE 컬럼입니다.

다른 DBMS는 syscat 과 system 등의 다양한 이름을 사용하고 있습니다 만, 표준 이름은 INFORMATION_SCHEMA 입니다.

표준 또는 DB2, SQL Server, Oracle에서 예약 된 이름을 사용하지 않도록 "MySQL 확장"으로 표시하고 일부 컬럼의 이름을 변경하고 있습니다. (예를 들어, TABLES 테이블에서 COLLATION 을 TABLE_COLLATION 로 변경했습니다.) https://web.archive.org/web/20070428032454/http://www.dbazine.com/db2/db2-disarticles/gulutzan5 기사 마지막의 예약어 목록을 참조하십시오.

INFORMATION_SCHEMA 참조 섹션에서 규칙

다음 섹션에서는 INFORMATION_SCHEMA 에서 테이블 및 컬럼의 각각에 대해 설명합니다. 컬럼에 대해 다음 세 가지 정보가 있습니다.

  • " INFORMATION_SCHEMA 이름 "에는 INFORMATION_SCHEMA 테이블의 컬럼의 이름이 표시됩니다. 이것은 "비고"필드에서 "MySQL 확장 '이라고 적혀 있지 않은 한, 표준 SQL 이름과 일치합니다.

  • " SHOW 이름 "은 가장 가까운 SHOW 문에 동일한 필드 이름이있는 경우에는이 이름이 표시됩니다.

  • 「비고」에는 필요에 따라 추가 정보가 기록됩니다. 이 필드가 NULL 의 경우, 컬럼의 값이 항상 NULL 임을 의미합니다. 이 필드에 "MySQL 확장"어떤 경우, 그 컬럼은 표준 SQL에 대한 MySQL 확장입니다.

많은 부분은 어떤 SHOW 문이 INFORMATION_SCHEMA 에서 정보를 검색하는 SELECT 와 동등한 지를 나타냅니다. 기본 데이터베이스의 정보를 표시하는 SHOW 명령문은 FROM db_name 절을 생략하면 INFORMATION_SCHEMA 테이블에서 정보를 검색하는 쿼리의 WHERE 절에 AND TABLE_SCHEMA = SCHEMA() 조건을 추가하면 기본 데이터베이스의 정보를 선택할 수 있습니다 .

InnoDB 스토리지 엔진에 고유의 INFORMATION_SCHEMA 테이블의 자세한 내용은 섹션 21.29 "InnoDB의 INFORMATION_SCHEMA 테이블" 을 참조하십시오. 스레드 풀 플러그인 고유의 INFORMATION_SCHEMA 테이블의 자세한 내용은 섹션 21.31 "스레드 풀의 INFORMATION_SCHEMA 테이블" 을 참조하십시오.

INFORMATION_SCHEMA 데이터베이스에 대한 자주 묻는 질문과 답변 내용은 섹션 A.7 "MySQL 5.6 FAQ : INFORMATION_SCHEMA" 를 참조하십시오.

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