Generated invisible primary keys

1. generated invisible primary key(GIPK)가 명시적으로 primary key 없이 생성된 모든 InnoDB 테이블에 추가

my_row_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT INVISIBLE PRIMARY KEY
  • GIPK 모드는 기본적으로 비활성화, sql_generate_invisible_primary_key 서버 시스템 변수 ON으로 활성화

  • SHOW CREATE TABLE, SHOW INDEX와 같은 명령문의 출력과 INFORMATION SCHEMA의 COLUMNS, STATISTICS 테이블에서 확인 가능

    • show_gipk_in_create_table_and_information_schema 서버 시스템 변수 OFF로 숨길 수 있음

  • --skip-generated-invisible-primary-key 옵션으로 mysqldump 및 mysqlpump에서 GIPK, 컬럼 및 컬럼 값 제외 가능

2. DBMS Replication에서 복제본은 원본에서 sql_generate_invisible_primary_key에 대한 모든 설정을 무시하므로 복제된 테이블에 영향을 미치지 않음

  • 복제본이 PK가 없는 InnoDB 테이블에 GIPK를 추가 가능

    • CHANGE REPLICATION SOURCE TO ... REQUIRE_TABLE_PRIMARY_KEY_CHECK = GENERATE

      • REQUIRE_TABLE_PRIMARY_KEY_CHECK = GENERATE은 Group Replication과 호환되지 않음

Last updated