关于消息的表有两个,一个是消息表,这个表里存储着消息的原始数据,另外一张是用户消息表,记录用户的消息记录。
使用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表中。