javamysql批量导入数据自动更新日期_MySQL
程序员文章站
2022-05-18 17:54:40
...
bitsCN.com
这段时间,一直在利用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,bitsCN.com
推荐阅读
-
对大数据的批量导入MySQL数据库
-
java实现批量导入.csv文件到mysql数据库
-
MySQL通过 LOAD DATA INFILE 批量导入数据
-
Java利用MYSQL LOAD DATA LOCAL INFILE实现大批量导入数据到MySQL
-
mysql导入大批量数据出现MySQL server has gone away的解决方法
-
mysql导入大批量数据出现MySQL server has gone away的解决方法
-
对大数据的批量导入MySQL数据库
-
解决大批量数据插入mysql问题:使用mysqlimport工具从文件中导入
-
MySQL:数据批量导入方法及相关问题介绍
-
使用 BulkProcessor 批量导入mysql数据到Elasticsearch