MySQL 8.0에서 추가된 모든 기능

MySQL 8.0에서 추가된 모든 기능 – SHOW

Estimated reading: 2 minutes 148 views
MySQL 8.0에서 추가된 모든 기능 – SHOW

MySQL 8.0에서 추가된 모든 기능들과 변경된 기능들에 대해 정리한 시리즈 문서로, 이 문서는 SHOW에 대한 내용을 담고있습니다. SHOW 관련 주요 변경 사항들을 살펴봅시다.

1. SHOW는 이제 숨겨진 컬럼을 나열합니다.

[원본제공링크 1]

MySQL 8.0에서는 SHOW 명령어를 사용하여 테이블의 숨겨진 컬럼(Invisible Column)까지도 조회할 수 있게 되었습니다.
이 숨겨진 컬럼 기능 자체가 MySQL 8.0.23에서 추가 되었고, 그 이후 8.0.30에서 부터 SHOW COLUMNS 명령의 기능이 변경된 것으로 비교적 최근에서야 변경된 기능에 대한 소개입니다. 숨겨진 컬럼은 시스템에서 자동으로 생성하거나 내부적으로 사용하는 컬럼으로, 일반적인 SELECT 문에서는 보이지 않습니다.

예시:

-- 숨겨진 컬럼을 포함한 테이블 생성
mysql> create table invi_test (a int primary key, b int invisible);
Query OK, 0 rows affected (0.16 sec)

-- 테스트 데이터 입력
mysql> insert into invi_test values (1);
Query OK, 1 row affected (0.04 sec)

-- 조회시 숨겨진 컬럼은 보이지 않음
mysql> select * from invi_test;
+---+
| a |
+---+
| 1 |
+---+
1 row in set (0.00 sec)

-- 하지만 컬럼 목록에서는 확인 됨
mysql> show columns from invi_test;
+-------+------+------+-----+---------+-----------+
| Field | Type | Null | Key | Default | Extra     |
+-------+------+------+-----+---------+-----------+
| a     | int  | NO   | PRI | NULL    |           |
| b     | int  | YES  |     | NULL    | INVISIBLE |
+-------+------+------+-----+---------+-----------+
2 rows in set (0.02 sec)

2. SHOW는 이제 인덱스 정보를 나열합니다.

[원본제공링크 1]

SHOW 명령어가 개선되어, 테이블의 인덱스에 대한 상세 정보를 표시할 수 있게 되었습니다. 이제 인덱스의 이름, 유형, 컬럼, 고유 여부, 가시성(Visible/Invisible) 등의 정보를 한눈에 확인할 수 있습니다. 이를 통해 데이터베이스의 인덱스 구성과 상태를 쉽게 파악하고 관리할 수 있습니다.

예시:

-- VISIBLE 및 INVISIBLE 인덱스가 포함된 테이블 생성
mysql> CREATE TABLE index_test (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    UNIQUE KEY unique_name (name) INVISIBLE,
    INDEX idx_age (age) VISIBLE
);
Query OK, 0 rows affected (0.12 sec)

-- 테스트 데이터 입력
mysql> INSERT INTO index_test (id, name, age) VALUES (1, 'Alice', 30), (2, 'Bob', 25);
Query OK, 2 rows affected (0.03 sec)
Records: 2  Duplicates: 0  Warnings: 0

-- SHOW INDEX FROM 명령으로 테이블의 인덱스 정보 확인
mysql> SHOW INDEX FROM index_test;
+------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table      | Non_unique | Key_name    | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| index_test |          0 | PRIMARY     |            1 | id          | A         |           0 |     NULL |   NULL |      | BTREE      |         |               | YES     | NULL       |
| index_test |          0 | unique_name |            1 | name        | A         |           0 |     NULL |   NULL | YES  | BTREE      |         |               | NO      | NULL       |
| index_test |          1 | idx_age     |            1 | age         | A         |           0 |     NULL |   NULL | YES  | BTREE      |         |               | YES     | NULL       |
+------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
3 rows in set (0.01 sec)

-- 각 열의 의미
-- Visible: YES는 사용 가능한 인덱스, NO는 숨겨진 인덱스를 의미

이 명령은 your_table_name 테이블에 정의된 모든 인덱스의 상세 정보를 보여줍니다.

Leave a Comment

이 문서 공유

MySQL 8.0에서 추가된 모든 기능 – SHOW

링크 복사

CONTENTS