以上介绍了铺底数据的重要性。要知道准备的铺底数据每张表要上亿条,那么我们如何快速而真实的准备铺底数据呢?这章将详细展开讲解。
2.1. 如果用简单的 JDBC 程序插入铺底数据 , 性能很差
用 JDBC 写一个程序往数据库里面插入数据的话,速度会很慢,大概是十万条一张表需要 20 分钟。那假设我们需要准备 1 亿条数据一张表就是 10000/10*20/60=333 小时
,如果业务逻辑需要准备 20 张表,那我们准备这些数据将需要 333*20=6660 小时 =277.5 天
!这样的速度慢得惊人,所以通过 JDBC 准备铺底数据将不成立。
显然,我们需要能更高效产生铺底数据的方法。笔者所在团队选择了如下的方法:找出数据库之间的表结构关系,并据此把数据翻倍利用 CPU 的运算能力高效率生成的数据导入到数据库中,从而在数据库中产生出所需的铺底数据。通过这种方式即避免了采用编写 JDBC 程序的方式,又能高效地生成铺底数据。
2.2.1. 找到数据库之间的表结构关系
要准备铺底数据首先要找表与表之间的关系,也就是要清楚在数据库里面的表之间的主表附表关系:一对多,多对多的关系。还有要知道实际情况中,一张主表的一条记录大概对应附表的几条数据。只需要一个大概的规律就可以了,或者取一个中间值的比例。我们可以通过 Rational Data Architect 生成的表结构图找到表与表之间的关系: