Я изменяю некоторые таблицы для хранения IP-адресов как чисел, а не строк. Это просто с IPv4, где 32-разрядный адрес может вписываться в целочисленный столбец. Однако адрес IPv6 составляет 128 бит.
Документация MySQL показывает только числовые типы до 64 бит ( "bigint" ).
Должен ли я придерживаться char/varchar для IPv6? (В идеале я хотел бы использовать один и тот же столбец для IPv4 и IPv6, поэтому я бы предпочел не делать этого).
Есть ли что-то лучше, чем использование двух столбцов bigint? Я бы предпочел не разрывать значение в верхнем и нижнем /64 при использовании адреса.
Я использую MariaDB 5.1 - если есть более лучшее решение в более поздней версии MySQL, тогда было бы неплохо узнать, хотя и не сразу.
[EDIT] Обратите внимание, что после рекомендации по наилучшему способу сделать это - очевидно, что существуют различные способы сделать это (включая существующее строковое представление), но это (с точки зрения производительности) лучше всего? (т.е. если кто-то уже сделал анализ, это спасло бы меня от этого, или если я упустил что-то очевидное, это было бы здорово узнать).