Как вы измеряете эффективность?
Например, сохранение UUID (который представляет собой текстовую кодировку byte[]
) в виде пары значений long
позволит вам очень быстро сравнить их в 64-битной архитектуре (намного быстрее, чем * 1005). * сравнение, которое является посимвольным). Однако ваша эффективность кодирования пострадает, потому что вы должны написать собственный тип.
Что важно в вашем случае?
Если вы заинтересованы в производительности в базе данных, производительность будет в некоторой степени зависеть от выбранной вами базы данных, но все будут по существу сравнивать UUID побайтово. Таким образом, важно сделать различия между ключами более вероятными к началу ключа.
UUID хорошо спроектированы в этом отношении. Лучший UUID - это «случайный» стиль. У них нигде нет много общих подстрок, включая начало, и они не пропускают информацию о машине, которая их сгенерировала. Но стиль UUID «временной метки» также является хорошим ключом, поскольку биты младшего разряда (которые быстро меняются) находятся в начале строки, а биты старшего разряда (которые не меняются для последующих UUID) позже.