加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

数据库分库分表,何时分?怎样分?

发布时间:2019-02-02 14:01:37 所属栏目:编程 来源:Java面经
导读:一. 数据切分 相关型数据库自己较量轻易成为体系瓶颈,单机存储容量、毗连数、处理赏罚手段都有限。当单表的数据量到达1000W或100G往后,因为查询维度较多,纵然添加从库、优化索引,做许多操纵机遇能仍降落严峻。此时就要思量对其举办切分了,切分的目标就在

上面的映射相关的要领必要特殊存储映射表,按非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来满意靠山伟大的查询方法。

五. 支持分库分表中间件

站在巨人的肩膀上能省力许多,今朝分库分表已经有一些较为成熟的开源办理方案:

  • sharding-jdbc(当当)
  • TSharding(蘑菇街)
  • Atlas(奇虎360)
  • Cobar(阿里巴巴)
  • MyCAT(基于Cobar)
  • Oceanus(58同城)
  • Vitess(谷歌) 

【编辑保举】

  1. 将数据库SQL查询功效直接转为JSON
  2. 2019年1月数据库风行度排行: PostgreSQL连任2018年度冠军
  3. DBA的大救星:数据库智能运维试探与实践
  4. 阿里数据库运维10年演进之路
  5. FoundationDB Record Layer 公布开源,提供相关数据库成果
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读