慕阮 2010-12-13 16:29
浏览 256
已采纳

mysql是如何进行loadfile的?

小妹对mysql涉猎不多,在版内也没找到相关答案,所以就求教于各位大侠。
问题起因:我自己用jdbc测试,用insert value的方式,插入40w条数据,测试了InnoDB,MyISAM引擎和预处理及批处理几种方式,最后得出结论是InnoDB引擎下预处理且批处理性能最好,但是也要37s左右。(是本地数据库)其它方式一般也就在50s不到的样子,最慢的就是100多s(MyISAM非预处理单条插入)。
后来,用了LOAD DATA LOCAL INFILE的方式,同样的数据,用了不到2s,我想问一下,mysql究竟是如何实现load file的,都是插入数据,为什么效率会提高那么多?
ps:我知道可以去看源码,不过太多了有点头大,希望哪位高手能简要的说明性能提高的原理,或者告诉我源码哪个文件里能够找到相关原理。唉最近项目要用,没有办法,提前谢谢了!分只能给这么多了!

  • 写回答

1条回答 默认 最新

  • dyccsxg 2010-12-13 17:16
    关注

    这里有解释
    [url]http://dev.mysql.com/doc/refman/4.1/en/insert-speed.html[/url]
    [url]d.Insert data into the table with LOAD DATA INFILE. This does not update any indexes and therefore is very fast. [/url]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?