Я видел ряд вопросов ( и прочитал их ), касающихся хранения адресов IPv4 и IPv6 в СУБД (, как правило, MySQL, в отличие от моего случая )
В любом случае, если ( и я тоже читал по-разному, поэтому сообщите, если это неверно или официально устарели ) IPv4-адреса дополняются нулями и хранятся в блоке ::/96
вперевод, имеет ли смысл использовать два столбца, возможно:
`ip96` BINARY(12) NULL , /* first 3 bytes of ipv6 */
`ip32` BINARY(4) NOT NULL , /* whole ipv4 or last byte of ipv6 */
Это имеет смысл в моей голове, насколько нормализация данных идет, и тестирование, находится ли адрес в диапазоне IPv4 или IPv6, так же простоas IS NULL
.
Тем не менее, я видел VARBINARY(16)
в ряде решений.
Существуют ли какие-либо ожидаемые приросты / потери производительности от внедрения этого решения в течение VARBINARY(16)
или 2 беззнаковых BIGINT
столбца?Как насчет индексации или каких-либо других соображений?