Ну вот вообще не вижу и не понимаю причин хранить целые числа (включая хэш-суммы и ip-адреса) в VARCHAR-ах. Целочисленные типы и были придуманы для того, чтобы хранить в них целые числа.
Например, возьмем 15-значное целое число в десятичной системе счисления. Если вы выберете для его хранения тип VARCHAR(15), то одно значение будет занимать 15 байт + 1 байт = 16 байт.
При этом тип BIGINT UNSIGNED весит всего 8 байт и имеет диапазон значений от 0 до 18446744073709551615 (включительно). Как следствие, скорость поиска, сортировки, сравнения, добавления новой записи будет выше.