MySQL 批量查询 与 单条多次查询
2016-04-27 10:14
344 查看
最近两天在做服务的性能测试,为了测试服务的承载能力,需要造很多数据。起初想用存储过程造数据,但是由于涉及到很多关联表,写存储过程比较蛋碎。于是使用Spring + MyBatis + Gradle 以程序的方式来造数据。
顺便表扬一下springboot,实在太方便了。
最开始为了图省事,开个for 循环,然后挨条插入数据,1万条数据,关联插入了3张表,耗时超过35分钟。
觉得这样太慢,于是将单条多次插入,改成了批量插入,2万条数据,1分钟不到,就插入完毕。
这个真是泪流满面啊。
送上MyBatis SQL 吧
单条插入
批量插入:
MyBatis 的 这种注解式写法,注意检查,容易报错误。
顺便表扬一下springboot,实在太方便了。
最开始为了图省事,开个for 循环,然后挨条插入数据,1万条数据,关联插入了3张表,耗时超过35分钟。
觉得这样太慢,于是将单条多次插入,改成了批量插入,2万条数据,1分钟不到,就插入完毕。
这个真是泪流满面啊。
送上MyBatis SQL 吧
单条插入
@Insert("INSERT into TABLE_XX(ID, UUID, X1, X2, X3) " + "VALUES" + "(#{id}, #{uuid}, #{x1}, #{x2}, #{x3})" ) void insertTableXX(TableXXPo po);
批量插入:
@Insert({ "<script>", "INSERT into TABLEXX(ID, UUID, X1, X2, X3) ", "VALUES", "<foreach collection='list' item='po' open='(' separator='),(' close=')' >", "#{po.id}, #{po.uuid}, #{po.x1}, #{po.x2}, #{po.x3}", "</foreach>", "</script>" }) void insertTableXXList(List<TableXXPo> poList);
MyBatis 的 这种注解式写法,注意检查,容易报错误。
相关文章推荐
- mysql启动服务出错--发生系统错误 1067。
- mysql 删除日志文件详解
- mysql求最大第二,最大第三个数
- mysql load data infile的使用
- 学会用各种姿势备份MySQL数据库
- 如何实时查看mysql当前连接数?
- Ubuntu14.04编译安装mysql5.6.26
- mysql 创建用户和表
- mysql show status
- percona MySQL 5.7yum安装
- MYSQL5.6编译安装
- mysql5.6版本-主从复制配置详细步骤
- Mysql+hibernate 长时间不操作再进入,导致连接池关闭的问题解决。
- 学会用各种姿势备份MySQL数据库
- mysql如何查看未使用的索引
- install MySQLdb
- mysql小知识笔记
- MySQL排序原理与MySQL5.6案例分析【转】
- MySQL5.7.10解压版详细安装教程
- MySQL——MySQL的数据类型