В MySQL наиболее часто используемый тип данных - INT UNSIGNED. Он имеет длину 4 байта и может хранить числа до 4 миллиардов, что более чем достаточно для большинства приложений. Использование BIGINT (диапазон 8B - 18446744073709551615) обычно является излишним, когда вы только начинаете работу с вашим приложением. Прежде чем ваша база данных станет слишком большой для первичного ключа INT, вам все равно придется нанять профессионального администратора базы данных, чтобы помочь вам с другими проблемами.
Типы данных CHAR или BINARY могут использоваться, когда используется тип GUID Первичный ключ - такие ключи облегчают разделение данных между несколькими экземплярами базы данных, однако в MySQL репликация с несколькими мастер-узлами чаще наблюдается.
При использовании таблиц InnoDB полезно помнить, что PK будет неявно последним столбцом во всех других индексах, созданных для конкретной таблицы. Это делает важным использование достаточно короткого типа данных для PK (опять же, 4B INT обычно делает свою работу хорошо).