Как эффективно сохранить UUID, сгенерированный в Java, в Oracle DB? Будет ли какое-либо использование удаление или удаление дефиса в UUID?

Как эффективно сохранить UUID, сгенерированный в Java, в Oracle DB? Будет ли удаляться или не удаляться дефис в UUID - хранилище / производительность?

Будет хранить

07b319dc-7e64-4047-a3e3-63ab43864d81 как есть
ИЛИ хранение
07b319dc-7e64-4047-a3e3-63ab43864d81 как 07b319dc7e644047a3e363ab43864d81

есть какая-то разница?

1 ответ

Решение

Удаление дефисов сэкономит вам ровно 4 символа в строке в базе данных, что не стоит затраченных усилий. Oracle не будет значительно медленнее или быстрее из-за этих четырех символов. Еще хуже, если вы хотите выбрать значение обратно в ваше Java-приложение и воссоздать java.util.UUID объект, вам нужно заново вставить дефисы в нужное место.

Если вы хотите сэкономить немного памяти в базе данных, RAW(16) (как упоминалось в комментарии вашего вопроса vcsjones) будет иметь наименьшую площадь. Однако, если вы хотите использовать RAW типа, вам нужно разобрать UUID в byte[] массив. Это немного сложно, так как java.util.UUID только возвращает String представление или два long ценности. Отдых UUID объект из byte[] массив еще сложнее.

Другие вопросы по тегам