programing

Eclipselink: 임시 테이블의 열 길이 및 mb4

testmans 2023. 9. 7. 21:33
반응형

Eclipselink: 임시 테이블의 열 길이 및 mb4

우리는 Eclipselink 2.7을 사용하고 있으며 Maria-DB를 연합 타입 UTF8-mb4로 설정했습니다.원칙적으로 설정은 정의된 것을 제외하고는 잘 작동합니다.DELETE진술.이 에클립스 링크는 실행하려고 합니다.

CREATE TEMPORARY TABLE IF NOT EXISTS TL_tf (SHA1 VARCHAR(255) NOT NULL, VALUE VARCHAR(255), PRIMARY KEY (SHA1))

이로 인해 MariaDB가 크기 제한으로 인해 명령을 거부합니다. 즉, SHA1이 PRIMARY KEY에 대한 UTF8-MB4 설정과 함께 사용하기에는 너무 깁니다.

세팅@Column(length=100)에클립셀 링크에서 무시됩니다.

MariaDB나 Eclipslink에서 설정을 변경할 수 있는 방법이 있습니까?

SHA1은 160 bits/20 bytes/40 hex에 불과하므로 255를 사용할 이유가 없습니다.대신:

CHAR(40) CHARACTER SET ascii

아니면 사용UNHEX(SHA1(...))그리고 작은곳에 보관합니다.

BINARY(20)

해시를 사용하는 경우PRIMARY KEY확장이 잘 되지 않습니다.테이블이 너무 커서 완전히 캐시할 수 없는 경우 테이블에 대한 액세스 권한은 I/O 바인딩됩니다.이것은 큰 테이블에 심각한 문제가 될 수 있습니다.

언급URL : https://stackoverflow.com/questions/52399885/eclipselink-column-length-and-mb4-for-temporary-table

반응형