Хочу использовать в качестве первичного ключа для mysql рандомное 12-значное численно буквенное значение.
вопрос в чем лучше хранить char, varchar, binary?
Конечно char(12), у вас ведь размер постоянный.
Вот только первичный ключ и рандомное значение это источник больших проблем.
Сильно усложните систему проверками на коллизии по первичному ключу.
nirvimel: Когда используется autoincrement вы можете быть уверены, что вашего сгенеренного значения еще нет в базе данных. Но вот с random у вас такой уверенности быть не может, т.к. явно часто будут генерироваться дубли. Я об этом.
Петр: Будем считать, что алгоритм обеспечивает равномерное вероятностное распределение генерируемой величины. Большинство современных алгоритмов практически удовлетворяют этому условию. Небольшой погрешностью можно пренебречь.