采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,现在有个场景就是需要向 Mysql中插入数据11W多,之前同事的做法就是,开了一个线程池(固定6个线程),
然后for循环里面去用线程池执行一个runnable任务,任务里面的逻辑就是每次插入1000条数据(1000条意思是说
Mysql批量插入1000条最合适),但感觉还是很慢! 这边要是您做优化的话,老师你怎么去做啊,思路是什么,
为什么这样比较好,谢谢老师
同学你好:
MySQL 批量入库最好的方式不是用代码,反而用代码一定是非常慢的,原因其实很简单:
(1)你的每一次插入(批量插入还好)都需要重新构建索引
(2)执行速度取决于你使用的语言、机器性能、网络带宽等等
所以,最好的入库方式是使用 MySQL 提供的工具 LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
执行这条命令最好的地方肯定是 MySQL 服务器所部署的机器上,这样省去了网络传输。你这里的数据仅仅有 11 万条,是小数据量。如果是更大规模的数据量,LOAD DATA 的方式体现的高性能就会更加的明显。
我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!
这10几万条数据都是根据 前面的结果查询出来的,每次都不一样,应该没办法通过 MySQL 提供的工具 LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl导入吧,老师,那这里只能通过代码的方式批量入库的话,有什么更好的方法吗
那就直接批量导入就好了,没有更优的方法了
登录后可查看更多问答,登录/注册
掌握业务开发中各种类型的坑,,Java web开发领域通用
1.7k 4
1.2k 3
1.0k 12
1.0k 2
1.7k 3