Лучший (наиболее эффективный) дат данных для использования для UUID в качестве идентификаторов JPA

StackOverflow https://stackoverflow.com/questions/730788

Вопрос

Я хочу использовать Uuids в качестве идентификаторов для моих объектов JPA.

В настоящее время я просто использую строку для хранения UUID. Что было бы более эффективным?

Это было полезно?

Решение

Как вы измеряете эффективность?

Например, хранение UUID (это текстовый кодирование byte[]) как пара long Значения позволят вам сравнивать их очень быстро с 64-разрядной архитектурой (гораздо быстрее, чем String Сравнение, которое является характером по характеру). Тем не менее, ваша эффективность кодирования будет пострадать, потому что вам нужно написать пользовательский тип.

Что важно в вашем случае?


Если вы заинтересованы в производительности в базе данных, производительность будет несколько зависеть от выбранной вами базы данных, но все по существу сравнит UUIDS Byte-Byte. Таким образом, важно сделать различия между ключами, которые с большей вероятностью будут к началу ключа.

Uuids хорошо разработаны в этом отношении. Лучший uuid - это «случайный» стиль. У них нигде не много общих подстроков, включая начало, и они не пропускают информацию о машине, которая их сгенерировала. Но стиль «временной метки» также делает хороший ключ, так как биты низкого порядка (которые быстро различаются) сначала в строке, в то время как биты высокого порядка (которые не меняются для последовательных UUID) потом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top