我建议您查看将要运行的查询类型,以决定采用哪种格式。
仅当您需要提取或比较各个八位位组时,才需要考虑将它们分成单独的字段。
否则,将其存储为4字节整数。这也有让您使用内置的MySQL的奖金
INET_ATON()和
INET_NTOA()功能。
性能与空间
存储:
如果仅支持IPv4地址,则MySQL中的数据类型可以是
UNSIGNED INT仅使用4个字节存储空间的数据类型。
要存储单个八位位组,您只需要使用
UNSIGNED TINYINT数据类型,而不是
SMALLINTS,这将占用每个存储空间1个字节。
两种方法都将使用类似的存储,可能会为单独的字段使用更多的存储空间,从而产生一些开销。
更多信息:
- 数值类型概述
- 整数类型(精确值)-INTEGER,INT,SMALLINT,TINYINT,MEDIUMINT,BIGINT
性能:
使用单个字段将产生更好的性能,它是单个比较而不是4。您提到您将只对整个IP地址运行查询,因此不必将八位字节分开。使用
INET_*MySQL
的功能将在文本和整数表示之间进行一次转换以进行比较。



