Я пытаюсь добавить UUID к нескольким таблицам, но я не уверен, каковы лучший способ хранить/получать они были бы. Я понимаю, что намного более эффективно использовать ДВОИЧНЫЙ ФАЙЛ (16) вместо VARCHAR (36). После проведения небольшого количества исследования я также нашел, что можно преобразовать строку UUID в двоичный файл с:
UNHEX(REPLACE(UUID(),'-',''))
Простите мое незнание, но есть ли простой способ к этому с PHP, и затем повернитесь спиной к строке, при необходимости, для удобочитаемости?
Кроме того, это имело бы много значения, если бы я использовал это в качестве первичного ключа вместо auto_increment?
Править:
Найденная часть ответа:
$bin = pack("h*", str_replace('-', '', $guid));
Как Вы распаковали бы его?
Хорошо - попробую ответить на свой вопрос. Это лучшее, что я мог придумать:
Пакет:
$binary = pack("h*", str_replace('-', '', $string));
Распаковать
$string = unpack("h*", $binary);
$string = preg_replace("/([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})/", "$1-$2-$3-$4-$5", $string);
Есть какие-нибудь проблемы с этим, кто-нибудь может увидеть?