最近在网上学的jsoup爬数据,爬了大概几万条城市地区的数据准备通过mybatis插入的mysql里,九个字段除了ID,其它都是varchar类型,区划代码是十二位数字暂时也是用的varchar;
想过三种插入方式
1:service层循环调用dao层插入数据,一条一条来
2:拼接sql类似 insert into citytable (province,...) select ... union all select ... union all
在后台先拼接几百条然后插入
3:xml里用foreach循环插入
请问有其它方法可以快速插入数据吗?求学中,路过的大神请多指教
https://blog.csdn.net/xu1916659422/article/details/77971867
批量插入/更新永远快于逐条插入/更新,原因在开启事务的成本,日志写入的成本等等。不论是采用框架组件还是自己拼凑,最终提交的语句形式如下:
insert into tb (...) values(...),(...)(...),(...)(...),(...)
可以考虑下多线程批量+MyISAM引擎。
1、多线程提高解析效率:将数据切分为 N 块,每一块交由一个线程去解析,直到所有块都被解析完成;
2、为了提高入库效率,表可以先不设计主键,数据库引擎选择 MyISAM;
几万条数据不多啊,如果仅仅是一次将数据插入到表中,建议用excle表格整理,导入进去
数据库建表时将数据库引擎改成 MyISAM ,不要使用默认的 InnoDB ,速度会非常快。