数据库分库分表,何时分?怎样分?
上面的映射相关的要领必要特殊存储映射表,按非uid字段查询时,还必要多一次数据库或cache的会见。假如想要消除多余的存储和查询,可以通过f函数取login_name的基因作为uid的分库基因。天生uid时,参考上文所述的漫衍式独一ID天生方案,再加上最后3位bit值=f(login_name)。当查询login_name时,只需计较f(login_name)%8的值,就可以定位到详细的库。不外这样必要提前做好容量筹划,预估将来几年的数据量必要分几多库,要预留必然bit的分库基因。 3.2、前台与靠山疏散 对付用户侧,首要需求是以单行查询为主,必要成立login_name/phone/email到uid的映射相关,可以办理这些字段的查询题目。 而对付运营侧,许多批量分页且前提多样的查询,这类查询计较劲大,返回数据量大,对数据库的机能耗损较高。此时,假如和用户侧公用统一批处事或数据库,也许由于靠山的少量哀求,占用大量数据库资源,而导致用户侧会识趣能低落或超时。 这类营业最好回收"前台与靠山疏散"的方案,运营侧靠山营业抽取独立的service和db,办理和前台营业体系的耦合。因为运营侧对可用性、同等性的要求不高,可以不会见及时库,而是通过binlog异步同步数据到运营库举办会见。在数据量很大的环境下,还可以行使ES搜刮引擎或Hive来满意靠山伟大的查询方法。 五. 支持分库分表中间件 站在巨人的肩膀上能省力许多,今朝分库分表已经有一些较为成熟的开源办理方案:
【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |