mysql에 테이블 생성하는데 에러가 발생 했다.
16:36:12 mysql_13306.sock > create table push_test -> (col1 bigint, -> col2 varchar(256), -> PRIMARY KEY (col1, col2)); ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes |
PK제약인가?
다시 생성
16:36:13 mysql_13306.sock > create table push_test -> (col1 bigint, -> col2 varchar(256), -> KEY push_test_idx01 (col1, col2)); ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes |
여전히 안되는군.
16:45:32 mysql_13306.sock > show global variables like '%char%'; +--------------------------+-------------------------------------------------------+ | Variable_name | Value | +--------------------------+-------------------------------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /data1/DBSpace_mysql/MySQL_5628/13306/share/charsets/ | +--------------------------+-------------------------------------------------------+ 8 rows in set (0.00 sec) |
인덱스 만들때 key 사이즈가 767바이트를 넘으면 안되는데,
utf8mb4는 1글자당 4바이트.
그럼 191글자 까지 가능.
16:51:33 mysql_13306.sock > create table push_test -> (col1 bigint, -> col2 varchar(256), -> KEY push_test_idx01 (col1, col2(192))); ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes 16:51:45 mysql_13306.sock > create table push_test -> (col1 bigint, -> col2 varchar(256), -> KEY push_test_idx01 (col1, col2(191))); Query OK, 0 rows affected (0.05 sec) |
인덱스 한번 만들기 힘드네.
mysql을 사용하면 안되는 이유...
'MySQL' 카테고리의 다른 글
MySQL Hash Join Optimization (0) | 2019.10.02 |
---|---|
MySQL 시퀀스(AUTO_INCREMENT) 조회 및 초기화 (0) | 2018.09.18 |
MySQL 설치 (5.6 or 5.7) (0) | 2017.03.09 |
MySQL load data (0) | 2016.10.27 |
MySQL 사용자 계정 추가, 변경, 자원 제한 (0) | 2016.10.20 |