Генерация коротких уникальных ключей в mysql как реализовать?
Оставьте в покое базу данных. Она в этой задаче вообще ни при чем.
Вам нужно всего лишь обратимое шифрование по ключу вашего ID - так, чтобы пользователь видел зашифрованную строку, а вы из нее могли получить ID обратно. Вот и все.

P.S. Впрочем, для такой цели и особого шифрования не требуется. Собирать строку {N1}{N2}{N3}, где N1 и N2 - случайные числа заданной длины, а N3 = (N1 * N2 + ID) XOR C - вот и готовый short_key, из которого обратно получаем ID = (N3 XOR C) - (N1 * N2)
SQL не умеет генерировать уникальные строки. Генерируйте с помощью php: unique();