source

MySQL GUID/UUID 저장

factcode 2023. 11. 5. 15:00
반응형

MySQL GUID/UUID 저장

이것이 UUID()에 의해 생성된 MySQL GUID/UUID를 이진(16)으로 변환하기 위해 생각해 낼 수 있는 최선의 방법입니다.

UNHEX(REPLACE(UUID(),'-',''))

그리고 나서 그것을 BINORY(16)에 저장합니다.

제가 알아야 할 이런 식으로 하는 것에 어떤 의미가 있나요?

MySQL 8.0 이상부터는 UUID_를 사용할 수 있습니다.TO_BIN:

UUID_TO_BIN(string_uuid), UUID_TO_BIN(string_uuid, swap_flag)

문자열 UUID를 이진 UUID로 변환하고 결과를 반환합니다. (IS_UUID() 함수 설명에는 허용되는 문자열 UUID 형식이 나열됩니다.)반환 이진 UUID는 VARB입니다.INARY(16) 값.

CREATE TABLE t (id binary(16) PRIMARY KEY);
 
INSERT INTO t VALUES(UUID_TO_BIN(UUID(), true));
INSERT INTO t VALUES(UUID_TO_BIN(UUID(), true));
INSERT INTO t VALUES(UUID_TO_BIN(UUID(), true));

SELECT *, BIN_TO_UUID(id) FROM t;

DB-Fiddle.com 데모

시사하는 바가 많지 않습니다.그러면 쿼리 속도가 조금 느려지지만 거의 눈치채지 못할 것입니다.

UNIQUEIDENTIFIER로 저장됩니다.16-byte binary어쨌든 내부적으로는

만약 당신이 바이너리를 클라이언트에 로드하고 거기서 파싱할 것이라면, 주의하세요.bit order, 이니셜이 아닌 다른 문자열 표현이 있을 수 있습니다.NEWID().

OracleSYS_GUID()함수를 문자열로 변환하면 클라이언트와 서버에서 다른 결과를 얻을 수 있습니다.

언급URL : https://stackoverflow.com/questions/547118/storing-mysql-guid-uuids

반응형