programing

MariaDB/InnoDB 성능: 복합 기본 키와 테이블에 대한 사용되지 않는 대리 정수 기본 키?

itmemos 2023. 6. 16. 21:27
반응형

MariaDB/InnoDB 성능: 복합 기본 키와 테이블에 대한 사용되지 않는 대리 정수 기본 키?

몇 년 전 MySQL/InnoDB를 사용하여 조사한 결과 테이블에 대리 정수 기본 키를 추가하는 것이 성능상의 이유로 항상 적합하다는 것을 알게 되었습니다.해당 키가 JOIN 또는 하위 테이블에서 사용되지 않는 경우에도 마찬가지입니다.이는 InnoDB에서 사용되는 클러스터형 인덱스로 인해 테이블 레코드가 기본 키에 따라 정렬되므로 단순한 AUTOINC가 아닌 키는 마지막 페이지가 아닌 다른 페이지에 계속 액세스하고 업데이트해야 할 수 있습니다.

현재 MariaDB/InnoDB에서 이 주제에 대한 업데이트된 데이터를 찾을 수 없기 때문에 추가적인 구체적인 참고 자료와 성능/ 무결성 고려 사항을 기대하며 이 질문을 드립니다.

기본 키는 항상 존재해야 하며 정수(작을수록 더 좋음)를 갖는 것이 선호되는 것은 분명하지만, 테이블에 자연스럽게 의미가 없는 경우, 직접 사용할 JOIN이 없거나 하위 테이블이 없는 경우에도 가짜 ID 기본 키를 만들어야 합니까?

자연 기본 키가 문자열이면 예라고 생각하지만 복합 기본 키라면 어떨까요?예를들면my_table(category_id, item_id, detailA, detailB)자연스러운 기본 키가 있는 곳.category_id+item_id(둘 다 정수)?단일 정수 기본 키를 가질 수 있도록 해당 테이블에 정수 가짜 ID를 추가하는 것이 말이 됩니까?

이 질문은 이론적인 SQL 개념이 아니라 MariaDB(현재 v10.6.x)의 현재 구현에 대한 것입니다.

언급URL : https://stackoverflow.com/questions/74788924/mariadb-innodb-performance-composite-primary-key-vs-unused-surrogate-integer-p

반응형