V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
linwu
V2EX  ›  问与答

mysql 数据库表设计

  •  
  •   linwu · Sep 5, 2019 · 2091 views
  •   You need to sign in to view this topic
    This topic created in 2426 days ago, the information mentioned may be changed or developed.

    表设计的过程中每列的类型, 像整数类型,指定是 tinyint,是不是可以直接指定 int, 字符类型,指定 varchar,是不是可以直接指定 text, 这种有意义吗? 反正占用内存的大小也是看列的实际值, 如果使用 tinyint 和 varchar 还可能会有存储值超出范围的情况

    5 replies    2019-09-06 08:56:33 +08:00
    Carseason
        1
    Carseason  
       Sep 6, 2019
    加索引的时候超出长度是加不了的,text 这种类型就无法做索引
    如果字段要合理一点最好还是限制一下类型的好,
    mysql 限制可以拒绝一部分溢出的数据,当然业务逻辑也要配合好
    MonoLogueChi
        2
    MonoLogueChi  
       Sep 6, 2019 via Android
    你想过用 text 字段做检索是什么样的吗
    340244120w
        3
    340244120w  
       Sep 6, 2019 via iPhone
    新版本我不清楚 反正之前 mysql 临时表里每个字段的内存占用和字段的限制长度是相关的
    340244120w
        4
    340244120w  
       Sep 6, 2019 via iPhone
    新版本我不清楚 反正之前 mysql 临时表里每个字段的内存占用和字段的限制长度是相关的
    340244120w
        5
    340244120w  
       Sep 6, 2019 via iPhone
    而且 int 类型那个长度只影响显示,也就是 int2 你存数字 99999 也能存,也能 select 出来,只用 gui 客户端查询只能显示两位。

    Text 类型可以用最前面的 n 个字符作为索引,这倒不是问题
    340244120w
        6
    340244120w  
       Sep 6, 2019 via iPhone
    3 楼说错了 内存占用和字段类型相关
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5543 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 06:01 · PVG 14:01 · LAX 23:01 · JFK 02:01
    ♥ Do have faith in what you're doing.