分享

点击一个商品会有数据插入数据库,大量用户点击会造成单表负载高,如何分表达到负载

点击一个商品会有数据插入数据库,大量用户点击会造成单表负载高,如何分表达到负载

用户点击的商品行为数据会记录下来,通常选择用mysql去接收,如何做到分表让数据存储均衡,不会导致一台机器或表负载过高?
分表的方法有多种,1根据用户id进行范围分表,1-1000的在A表,1001-2000的在B表,优点:可部分迁移,缺点:数据分布不均。2根据商品id或者user_id取模分表,比如分100张表,1/100=1放A表,2/100=2放B表,优点:数据分布均匀,缺点:数据迁移的时候麻烦,不能按照机器性能分摊数据。3根据时间戳分表,比如8点-9点间访问的放在A表,1点到两点访问的放B表。3hash分表,针对商品id做hash,为了降低负载可以设定一个中间库用来存储当前用户访问商品的信息存储在哪个库下面的,查询前先去查询这个库获取信息后再去查询事实表。不过这样有失性能,优点:灵活性强,一对一关系,缺点:每次查询之前都要多一次查询,性能大打折扣

除了上述我说的这几种,还有没有更好的方法,想象一下大型互联网电商里面的场景会很复杂应该设计起来考虑的点也会更多,大家有新想法的请赐教

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条