【问题标题】:Two way to batch insert and the performance is same or not?两种批量插入方式,性能是否相同?
【发布时间】:2015-11-30 11:57:36
【问题描述】:

关于批量插入的性能。
1.

insert goods(...) values(...)
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)

insert goods(...) values(...)
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)
...

2.

insert goods(...) values(...)
insert goods(...) values(...)
...
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)
insert goods_price(goods_id, level, price) values(...)

关于以上两种方式的性能相同还是不同?哪种方式对mysql更友好?

【问题讨论】:

    标签: mysql batch-insert


    【解决方案1】:

    对于您的样本,性能几乎相同 为了获得更好的性能,您应该使用像这样的真正的 bacth 插入物

    insert goods(...) values(v1, v2, v3...), (v1, v2, v3...), (v1, v2, v3...), ...
    insert goods_price(goods_id, level, price) values(p1, p2,p3, ...), (p1, p2,p3, ...), (p1, p2,p3, ...), ...
    

    在此示例中,插入解析的数量在您的示例中是次要的..

    【讨论】:

    • 你是对的。但是即使使用 jdbcTemplate 的 batchUpdate 仍然会一一插入。更不用说我使用了 Spring data jpa。
    猜你喜欢
    • 1970-01-01
    • 2013-07-12
    • 2011-02-28
    • 2014-09-17
    • 2012-01-28
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多