【发布时间】:2011-03-28 04:29:00
【问题描述】:
在 MySQL 数据库中以字符串形式存储 IPv4、IPv6 地址的理想大小应该是多少。 varchar(32) 是否足够?
【问题讨论】:
-
@Col:在当前任何稳定的 MySQL 版本中都没有好的选择。
-
至少 2 个 bigint 可以替代 ipv6。并即时从字符串 ipv4 转换为字符串 ipv6,正如问题和答案所假设的那样
-
@Col:这样更好吗?您仍然需要在应用程序代码中进行转换,而且任何不得不深入数据库本身的人都无法真正读取该死的地址,因为 IPv6 没有内置的 INET_NTOA 实现。
-
@Nicholas 你仍然可以在地址上使用二进制数学。或者只是在 BETWEEN 之间找到一个范围。用字符串地址试试吧。
-
@Col:使用正确规范化的字符串地址做任何你想做的事情都非常容易。你所失去的只是性能,而且 OP 不太可能会做足够多的此类查询来影响那么大。
标签: mysql