程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> javamysql批量導入數據自動更新日期

javamysql批量導入數據自動更新日期

編輯:MySQL綜合教程

這段時間,一直在利用hadoop和pig對一些數據進行操作,每周的新產生的數據量都是百萬級以上,對於大批量的數據(千萬級以上)插入和更新操作,如果利用insert的操作起來速度比較慢,我測試了一下如果利用insert 來實現插入三千萬條的記錄需要二十個小時以上(沒有使用集群)。

為了提高插入和更新數據的速度,mysql提供了load指令,可以大大的提高插入的速度,在我的機器上,load操作的速度是insert的10倍左右。

官方的load 指令格式如下:

 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...]
1. 如果你要插入的數據在本地,可以使用如下指令:

Load data local infile '要插入的數據源名稱' into table 要插入的的表名

2. 如果對已經存在的記錄進行更新操作,可以使用如下指令:

Load data local infile '要插入的數據源名稱' replace into table 要插入的的表名

對於有些場景,當每條數據進行更新時需要把相關的時間進行更新,如果沒有進行更新則保存原來的時間。對於這種情況有兩種方法可以進行解決:

方法1. 這種方法比較常規,就是在進行插入或者更新時,把當前的時間傳入到數據庫中,一起進行更新操作。

方法2. 可以在進行建表的時候,通過使用如下指令,假如你要創建的列名為time

`time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved