全球领先的電子商務系統開發及解决方案提供商

語言

java多用户商城系统架构篇——分库分表

2018-11-04 1130
分类: 技术干货

目前公司数据量已经上来,单表最大已经5千万,之前使用分区表,用起来有很多需要注意的地方,以及坑等。

目前公司数据量已经上来,单表最大已经5千万,之前使用分区表,用起来有很多需要注意的地方,以及坑等。

所以就在年后准备做分库分表,筛选了N多中间件、框架,似乎都不满足。B2B2C多用户商城平台开发主要在以下几点。

比如用阿里的myCat,需要学习、研究,因为我们目前有点急,需要安排人去研究,而且需要深入研究,结果就是搞了几天没啥头绪。但是原理就是做代理,这个了解透了。

java多用户商城系统架构篇——分库分表

在看当当网提供的sharding-jdbc分库分表案例,也是同样问题,没那么多时间研究,而且这几家提供的东西,居然官网都是英文/中文,中文文档也是按照老外风格写,尽量给你增加门槛!!!

于是乎就萌生自己写B2B2C多商家商城系统分库分表。

废话不多说。

1、首先是老数据问题

这个是网上所有文章没有提到的,没有提到这个问题的文章,可以说99.99%没玩过分库分表。

对于5000万的数据量,做切分,一张表控制在100万,你手动去复制粘贴???,每隔一段时间手动建库???

据说当当是手动,应该是写的程序手动的。。。。伤不伤???

其实很简单,我用JDBC写的,查到老库所有表名,create table newTableName like oldTableName;这样可以把表结构、索引结构都拷贝过来到新库,但是不会拷贝数据,网上有另一条SQL,我想大家已经玩过了,那个索引、主键不会拷贝。。

2、如何做数据分散存储

很多人肯定看过文章,ID取模呀。那如果数据量又达到瓶颈咋搞?阿里的单表12年就已经100亿了。。。。

所以说ID取模并不是仅仅这么简单,还需要数据量控制,我这里有个更好办法,其实就是简单数据量控制。

达到100万就Next,ID是自增的,出去100万,余数为0则Next。当然ID取模这么流行的方法都是阿里、58、京东这些架构师出来讲培训说的,其实你实际去操作,有其他N多方法,没有必要照搬。。。。

3、多表、关联关系如何建立?

你怎么知道User表包含哪些Order表呢?,如果一个user出的订单既有在N库,也有在N+1、N+2库里面呢?

通过user_id查询order。一般单库做关联查询,其实多库也可以,只是索引会失效而已了。然后2千万*5千万扫描。。。。看过唯品会的解决方案,他们是Order_id中间一段是user_id,完美不,很完美。。。。

但是,我们已经有5000万数据了,人家唯品会有的是钱,拉500人团队搞呗。。。2个月搞完。我们几个人?就是我一个人。。。。伤不伤吧。。

所以这个方案不行,唯品会文章中丢弃的一个方案就是建立中间对应关系。

就是user_id和order_联合加上order_id所在库。他们丢弃的原因是中间表会巨大,确实。但是如果放在redis缓存中就没有这个问题了,redis缓存只要空间足够大,性能2~3个亿没问题。

redis缓存还可以做切分啊,也算是完美符合我们这种小公司了吧。

4、如何取数据?

对于一对一查询,以前关联查询、子查询,现在都用子查询,分为两次查询。这个时间上只是毫秒差异。不用联合多库查询。(题外话,做互联网公司项目,几乎不会需要用外键、关联查询的。。。一般都是分多次查询,或者通过缓存系统拿空间换时间,怎么玩?比如微博一个用户发文章,不做文章表,所有文章放在user的下面,每个user下面都是自己的,那么查询起来就是查user就OK。)

对于一对多查询,就是2里面提到的,已经知道库了,那么具体查询方案我们还是多次查询。对于多对多,更简单了,中间关系建立好,比以前多对多查询更简单了。这会还是一对多查询。

 

文章来源:博客园

编者:云朵匠 | 数商云(微信ID:shushangyun_com)

<数商云(www.shushangyun.hk)是全球知名的企业级电子商务系统开发商,为企业提供专业的电商系统开发解决方案,其产品服务包含:B2B电子商务系统建设B2B2C多用户商城系统开发B2C电商平台搭建、新零售电商、社交电子商务平台、视频直播平台、大数据电商平台、跨境进出口电商平台等等各行业大型电子商务平台搭建服务,其产品优势:系统安全性高、可扩展性强、集群式部署、支持高并发量和高访问量>

網站聲明:以上內容為數商雲電子商務系統網站的原創文章,如需轉載,請註明出處,謝謝合作!
電商頭條文章
1 肺炎疫情防控背后,有多少“大数据”在支撑?
春节假期已近尾声,返程高峰即将到来,疫情防控工作进入关键期。1月29日召开的中央应对疫情工作领导小组会议对此做出判断“当前疫情正处于扩散阶段,局部地区有迅速上升趋势”。在此背景下,如何有效防控疫情“返程传播”成为对战疫情的重中之重。
2 瞄准靶向精准发力,全面驱动传统企业加速驶入供应链4.0时代
最近产业互联网圈子动不动就提数字化转型,再赶时髦点就是“中台”、“供应链4.0”、“赋能”、“人工智能”…… 传统企业的IT建设理念一下子进入一个混乱的时期,各种新理论满天飞,产业互联网的确在发生革命,但这种变革实质上更多的是解决企业内部价值链协作系统如何适应外部多变环境的问题。
3 如何构建高效、灵活扩展、面向大数据的实时分析平台?
随着互联网、移动互联网、物联网和各种智能终端的快速发展,各种数据无时无刻地生成,新数据的产生成大爆炸趋势,如此大数据量的实时查询和分析能力已然成为企业报表分析系统的重要考量指标。
4 锦囊微课 | 加速数据驱动价值,工业企业数字中台如何搭建?
数字经济时代的到来将“数字中台”这一概念炒的火热。回看2019年,不仅有行业内对于中台定义的百家争鸣,更有华为、腾讯、万科、京东等诸多行业头部企业带动了对数字中台落地实践的探索热潮。
5 数据中台是真火还是炒作?
马云老师在2019年说了一段话,“很多人会把数据比作石油,我们现在搭建的数据中台,就是希望扮演发电厂的角色”,这一段话,现在被大众认为是“数据中台”这个概念的起源。那么数据中台是否真的火了呢?
console.log();