首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

用户 ip 字段,在 MySQL 中到底该以何种类型存?

  •  
  •   kisshere · 82 天前 · 1454 次点击
    这是一个创建于 82 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要包含 ipv4 和 ipv6,网上查了很多人建议 ipv4 用 php 的 ip2long 存成整数型,但是 ipv6 呢?怎样设计一个类型,能同时存 ipv4 和 ipv6,方便极速检索

    第 1 条附言  ·  82 天前
    ip 字段要索引,方便极速查询
    14 回复  |  直到 2019-07-30 16:39:59 +08:00
        1
    reus   82 天前
    换 PostgreSQL,用 cidr 类型。
        2
    reus   82 天前
    mysql 就用 binary(16)
        3
    shoaly   82 天前   ♥ 1
    问一下 存成 字符串 有啥弊端?
        4
    William911   82 天前
    有这么纠结吗? 纯展示需要就存字符串得了
        5
    jinhan13789991   82 天前 via Android
    转二进制字符串~
        6
    agdhole   82 天前 via Android
    int32
        7
    nlimpid   82 天前
    如果只有 ipv4,用 int 就够了。
    如果同时有 ipv4 和 ipv6,可以使用 varbinary(16),mysql 有内置的方法处理 ip 类型,见 https://dev.mysql.com/doc/refman/5.6/en/miscellaneous-functions.html
        8
    ladypxy   82 天前 via iPhone
    Discuz 做法是使用 varchar(45)
        9
    hmxxmh   82 天前
    @shoaly 万物皆可字符串
        10
    julyclyde   82 天前
    @ladypxy discuz 基本上是各种负面例子的集合
        11
    wangkai0351   82 天前
    @hmxxmh 一生二,二生三,三生万物?
        12
    falcon05   82 天前 via iPhone
    kiss 原则,keep it simple stupid …
        13
    mostkia   82 天前
    有 ipv6,感觉字符串好一些吧,同时限制一下数据长度即可。
        14
    fyxtc   82 天前
    怎么简单怎么来,纯展示字符串最直接,如果要解析,那么自己掂量看是把解析业务放在数据库做还是代码层做。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1354 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 31ms · UTC 23:56 · PVG 07:56 · LAX 16:56 · JFK 19:56
    ♥ Do have faith in what you're doing.