강의

멘토링

로드맵

Inflearn コミュニティ Q&A

aws のプロフィール画像
aws

投稿した質問数

Real MySQL シーズン 1 - Part 1

Ep.02 VARCHAR vs TEXT

Mysql table avg_row_length

解決済みの質問

作成

·

144

0

TEXT, LONGTEXT 타입 칼럼이 존재하는 테이블의 경우에 informatino_schema.TABLES에 존재하는 avg_row_length의 값은 LOB 칼럼들의 평균바이트 수도 같이 계산이 되는걸까요?

mysqldbms/rdbmsbackendquery-tuningmysql-query

クイズ

MySQL에서 CHAR와 VARCHAR 데이터 타입의 주요 차이점은 무엇일까요?

CHAR는 가변 길이, VARCHAR는 고정 길이 문자열을 저장해요.

CHAR는 최대 길이만큼 공간을 미리 할당하고, VARCHAR는 저장된 데이터만큼만 공간을 사용해요.

VARCHAR는 인덱스를 사용할 수 없지만, CHAR는 사용할 수 있어요.

VARCHAR는 최대 저장 용량이 CHAR보다 훨씬 작아요.

回答 1

0

sungucklee2062님의 프로필 이미지
sungucklee2062
インストラクター

안녕하세요.

 

아래 예제에서와 같이, MySQL 서버의 avg_row_legnthdata_length / rows 값의 결과일뿐입니다. 그리고 data_length 값은 테이블의 데이터가 저장된 페이지의 개수 * 페이지크기(16KB) 입니다.

마지막으로 데이터가 저장된 페이지의 개수 에는 Off-page 또는 Inline으로 저장된 TEXT/BLOB 컬럼들도 모두 포함됩니다.

CREATE TABLE table_stats (id int primary key, fd text);
INSERT INTO table_stats VALUES (1, REPEAT('한글',10000));
SELECT id, length(fd) FROM table_stats;
+----+------------+
| id | length(fd) |
+----+------------+
|  1 |      60000 |
+----+------------+

ANALYZE TABLE table_stats;
+------------------+---------+----------+----------+
| Table            | Op      | Msg_type | Msg_text |
+------------------+---------+----------+----------+
| matt.table_stats | analyze | status   | OK       |
+------------------+---------+----------+----------+

SHOW TABLE STATUS LIKE 'table_stats' \G
*************************** 1. row ***************************
           Name: table_stats
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 1
 Avg_row_length: 81920
    Data_length: 81920
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2025-02-02 07:06:31
    Update_time: 2025-02-02 07:06:59
     Check_time: NULL
      Collation: utf8mb4_0900_ai_ci
       Checksum: NULL
 Create_options:
        Comment:
1 row in set (0.00 sec)
 

 

설명이 길었는데, 결론은 TEXT/LONGTEXT 타입 컬럼도 모두 avg_row_length 에 영향을 미치게 됩니다.

aws のプロフィール画像
aws

投稿した質問数

質問する