從一月至今,我總共歸納了三種創建千萬級大表的方案,它們是:
下面是這三種方案的對比表格:
| # | 名稱 | 地址 | 主要機制 | 速度 |
| 1 | 在Oracle中十分鍾內創建一張千萬級別的表 | https://www.cnblogs.com/heyang78/p/12169527.html | connect by+Insert into select | 由於插入量是線性增長的,導致速度在前三種方案里最慢 |
| 2 | 25分鍾創建一千六百萬大表全記錄 | https://www.cnblogs.com/heyang78/p/12493930.html | 同上 | 插入量是成幾何級數增長的,速度要比上面方案快些 |
| 3 | 用笛卡爾積來創建一千六百萬大表 整體19分鍾 大表建成兩分鍾 設置id13分鍾 | https://www.cnblogs.com/heyang78/p/12496028.html | 用connect by生成小表,再用笛卡爾積產生大表 | 由於小表相乘產生笛卡兒積迅速,使得速度最快。 |
| 4 | 將大量數據批量插入Oracle表的類,支持停止續傳 | https://www.cnblogs.com/heyang78/p/12149638.html | 用java程序生成數據,用批量插值語句插值 | 沒有直接用sql生成數據,二是多了一層java,因此速度落於下乘。但對數據內容有要求的場合一定會用到這種方案。 |
現在可以說,兩分鍾內創建一張千萬級大表很尋常,當然把id規整好設上主鍵需要十三分鍾左右時間,這都是一步步嘗試后的寶貴經驗總結,另外用java程序生成數據也是一條不可或缺的路子,對數據內容格式有要求的場合離不了它。
--2020年3月15日 總結於此以備考--
