mysql存储过程循环事务插入数据+测试总计数据查询时间

DROP PROCEDURE IF EXISTS insertTUserStatement;
create procedure insertTUserStatement(IN num int)
begin
declare i int;
start transaction;
 set i=0;
 while i<num do
    INSERT t_user_statement VALUES(NULL,FLOOR(1 + RAND() * (10)),1,FLOOR(100 + (RAND() * 99999)),0,1,1,NOW(),0,0);
    set i=i+1;
end while;
commit;
 end;

CALL insertTUserStatement(100000);

使用事务一次性提交,速度会快很多。10W条数据也才不到3秒,百万条不到30秒,模拟数据非常方便,九百万数据用时5分钟,9000万数据不建议直接插入,下班前插入,第二天上班还在插入,保守估计16个小时,建议使用千万级数据插入10次(不建议测试9000W数据,我在插入过程中,手动停止了,导致电脑磁盘读写一直100%)。
此表主键自增,所以未写回滚。

百万数据测试:一个代理商,所有下级代理共有五个(无线下级代理),该代理商的代理玩家(包括他的下级代理商的玩家)共66.8W数据,计算代理商玩家的花费流水总计。
测试结果:

关键字 是否使用冗余字段 是否使用索引 查询所用时间
IN 8.8s<
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值