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