mysql数据库建表的几点建议

  • 绝大多数表单表列数保持在15个以内,如果你的字段超过15个,你应该考虑根据业务对表做垂直分表,数据拆分,这样既保证业务数据清晰,又能减轻单表读写压力
  • 列数据选择正确的相关类型存储,如 int,char, varchar
  • 建表时同时建立索引(当然视情况而定,有的表不需要建索引,就不要画蛇添足了), 避免上线后发现各种慢的问题再去建索引,这样直接影响线上业务,如果刚好需要建索引的表数据量大,且读写访问频繁,则很大机率直接导致服务宕机(线上环境你敢让服务宕机?),虽然可以通过其他工具或复制表的方式规避这个问题,但是如果开始就能建好,何必后面的这些麻烦呢
  • 建大数据量表时,同时建立分区,例如按时间分区,按自增ID分区,避免上线后修改,影响线上业务,当然分区也只是一种方式,你也可以提前设计好分库分表模式或单库分表模式,这里分表指水平分表,垂直分表终究还是无法解决单表数据量大的问题,总之提前设计好,不然就是给自己或者后面来的人挖坑
  • 列字段设置相关默认值,避免出现为(null, none)时,程序在对取出的数据做比较或判断时出现异常,而这个异常出现概率极低,导致测试也没发现(本人亲身经历,int字段默认为null, 取出的数据有些为数字,有些为null,导致测试环境程序没问题,线上环境出错)
  • 点赞