从一月至今,我总共归纳了三种创建千万级大表的方案,它们是:

下面是这三种方案的对比表格:

#名称地址主要机制速度
1在Oracle中十分钟内创建一张千万级别的表https://www.cnblogs.com/xiandedanteng/p/12169527.htmlconnect by+Insert into select由于插入量是线性增长的,导致速度在前三种方案里最慢
225分钟创建一千六百万大表全记录https://www.cnblogs.com/xiandedanteng/p/12493930.html同上插入量是成几何级数增长的,速度要比上面方案快些
3用笛卡尔积来创建一千六百万大表 整体19分钟 大表建成两分钟 设置id13分钟https://www.cnblogs.com/xiandedanteng/p/12496028.html用connect by生成小表,再用笛卡尔积产生大表由于小表相乘产生笛卡儿积迅速,使得速度最快。
4将大量数据批量插入Oracle表的类,支持停止续传https://www.cnblogs.com/xiandedanteng/p/12149638.html用java程序生成数据,用批量插值语句插值没有直接用sql生成数据,二十多了一层java,因此速度落于下乘。但对数据内容有要求的场合一定会用到这种方案。

现在可以说,两分钟内创建一张千万级大表很寻常,当然把id规整好设上主键需要十三分钟左右时间,这都是一步步尝试后的宝贵经验总结,另外用java程序生成数据也是一条不可或缺的路子,对数据内容格式有要求的场合离不了它。

--2020年3月15日 总结于此以备考--

05-11 16:57