Как эффективно сохранить 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[]
массив еще сложнее.