Все зависит от того, что вы подразумеваете под «наиболее подходящим».
Преимущества varchar (36) в простоте.Вы можете хранить GUID как есть и легко читать его обратно.
Но если вас беспокоит объем дискового пространства, занимаемого столбцом, у вас есть несколько вариантов:
varchar (36) = 37 байт char (36) = 36 байт char (32) = 32 байта (просто удалите дефисы) двоичный (16) = 16 байт (удалите дефисы и отмените код GUID, чтобы получить двоичную строку)
Так что, если вас беспокоит дисковое пространство, вы обнаружите, что двоичный файл (16) намного лучше, чем varchar (36).
Вот пример получения двоичной строки (16) из GUID вMySQL:
unhex(replace(uuid(),'-',''))