您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

javamysql批量导入数据自动更新日期_MySQL

2024/6/15 17:43:32发布29次查看
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
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product