关于消息的表有两个,一个是消息表,这个表里存储着消息的原始数据,另外一张是用户消息表,记录用户的消息记录。
使用h2db
存储消息时,消息存储在t_message
表中,用户消息记录在t_user_message
表中;
使用mysql
存储消息时,消息存储在t_message_X
表中,X = (月份 - 1 + (年份%3) * 12)
,例如2019年4月
存储在t_message_3
表中,因为X = (4 - 1 +(2019 % 3) * 12) = 3
。
用户消息记录表是t_user_message_Y
,记录用户和消息的对应关系,分表规则是用 Java
计算用户id 的hashCode
的绝对值,再对128取余,比如用户id为userId1
,Java
语言里面"userId1".hashCode()
是-147154261
,其绝对值取模就是147154261 % 128 = 85
,所以这个用户的消息记录在t_user_message_85
表中。