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

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

  •  
  •   kisshere · 2019-07-30 11:39:33 +08:00 · 3681 次点击
    这是一个创建于 1725 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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