MySQL 데이터베이스의 기본 키로 UUID 값을 사용하는 것을 고려하고 있습니다. 삽입되는 데이터는 수십, 수백 또는 수천 대의 원격 컴퓨터에서 생성되며 초당 100 ~ 40,000 개의 삽입 속도로 삽입되며 업데이트를 수행하지 않습니다.
데이터베이스 자체는 일반적으로 데이터를 추출하기 시작하기 전에 약 5 천만 개의 레코드를 가져 오므로 대규모 데이터베이스는 아니지만 작지도 않습니다. 우리는 또한 InnoDB에서 실행할 계획이지만, 우리가하고있는 일에 더 나은 엔진이 있다면 그것을 변경할 수 있습니다.
우리는 Java의 Type 4 UUID를 사용할 준비가되었지만 테스트에서 이상한 동작을 보았습니다. 첫째로, 우리는 varchar (36)로 저장하고 있으며 이제 binary (16)을 사용하는 것이 더 낫다는 것을 알고 있습니다.
더 큰 질문은 5 천만 개의 레코드가있을 때이 임의의 데이터가 인덱스를 얼마나 심하게 망가 뜨리는가입니다. 예를 들어 가장 왼쪽 비트에 타임 스탬프가 찍힌 유형 1 UUID를 사용하는 것이 더 나을까요? 아니면 UUID를 완전히 버리고 auto_increment 기본 키를 고려해야할까요?
여러 유형의 UUID가 MySQL에서 인덱스 / 기본 키로 저장 될 때 성능에 대한 일반적인 생각 / 팁을 찾고 있습니다. 감사!