字段类型的选择
主键、 bigint \varchar(32)
时间 datetime,需要考虑数据库时区、服务器时区、业务时区、夏令时,尤其是使用雪花算法时
一般数据会加上create_time和update_time这两个字段。建议业务如果是有多个操作入口的话,增加各自操作的时间记录字段。
普通的数值 int
状态值 tinyInt
文本内容 varchar (优先使用UTF-8字符集,如果需要存储emoj使用utfbmb4)
评估表的数据量
如果存储的数据量较多,会使得主键的索引树高超过3层,性能下降。
如果要存储大量数据,需要设计分表,分表可以通过特征或者时间做划分。
比如对uid做取余,再根据uid做分表查询。
时间上的分表可能会导致需要跨表查询时查询次数增加。
宽表拆分
便于细粒度查询、缓存,节约io