MySQL批量备份或者写入数据
【摘要】 需求背景在大数据量表的情况下,需要备份一张表中的数据,到另外一张表。尽量不要使用框架的对象insert方法,效率很低。尽量使用SQL的原生写法来完成。如下以<中升事故线索>为例,进行数据的备份。实现方法INSERT INTO old_warn_info ( id, create_time, update_time, adcode, car_code, car_plate_num, car_t...
需求背景
在大数据量表的情况下,需要备份一张表中的数据,到另外一张表。尽量不要使用框架的对象insert方法,效率很低。尽量使用SQL的原生写法来完成。如下以<中升事故线索>为例,进行数据的备份。
实现方法
INSERT INTO old_warn_info (
id,
create_time,
update_time,
adcode,
car_code,
car_plate_num,
car_type,
case_num,
company_id,
expect_money,
follow_time,
have_shop,
hint_enter,
match_eas,
msg_type,
real_name,
remark,
remarks,
repeat_data,
shop_code,
shop_name,
src_car_code,
src_car_plate_num,
`status`,
user_name,
user_phone,
copy_time
) SELECT
CONCAT( DATE_FORMAT( SYSDATE( 6 ), '%Y%m%d%H%i%S%f' ), ROUND( RAND() * 10000000000 ) ),
create_time,
update_time,
adcode,
car_code,
car_plate_num,
car_type,
case_num,
company_id,
expect_money,
follow_time,
have_shop,
hint_enter,
match_eas,
msg_type,
real_name,
remark,
remarks,
repeat_data,
shop_code,
shop_name,
src_car_code,
src_car_plate_num,
`status`,
user_name,
user_phone,
DATE_FORMAT( CURDATE(), '%Y-%m-%d' )
FROM
warn_info
WHERE
create_time < '2022-01-01'
其中,上面大部分都是字段数据的直接拷贝。考虑到新表中的ID格式不同,特别使用的时间戳和随机数重新标记。
类似的数据备份相似的写法。在大数据拷贝的时候,性能比较卓越。可以直接在Navicat中执行,或者通过Java执行。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)