linwu
V2EX  ›  问与答

mysql 数据库表设计

  •  
  •   linwu · Sep 5, 2019 · 2132 views
    This topic created in 2446 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   ·   4837 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 09:50 · PVG 17:50 · LAX 02:50 · JFK 05:50
    ♥ Do have faith in what you're doing.