SQL优化——插入数据优化(load指令的使用)

  • 插入数据时的优化
  • 主键优化
  • order by优化
  • group by优化
  • limit优化
  • count优化
  • update优化

1.插入数据时的优化

批量插入数据时最好最多别超过一千条,如果一次批量插入几万条数据,可以将其分割成多条insert语句进行插入。

mysql的事务提交方式是默认自动提交的,当执行完一条insert语句后事务就提交了,再次执行一条insert,执行之前开启事务,执行完毕之后自动提交事务,这时候就会涉及到事务的频繁开启与事务的提交,所以建议手动控制事务。执行insert语句之前先开启事务,等多条insert语句执行完毕以后,统一提交事务。

主键顺序插入。

在这里插入图片描述

1.1 大批量插入数据

大批量插入数据,建议使用load指令,而不建议采用insert指令。
在这里插入图片描述
mysql查看参数的语法格式:

select @@local--infile;

在这里插入图片描述
开启local_infile的开关,此时数据就可以通过load指令加载进来了。

set global local_infile = 1;

在这里插入图片描述
将数据文件上传,并使用load指令加载到mysql数据库表中

load data local infile '/root/load_user_100w_sort.sql' into table tb_user fields terminated by ',' lines terminated by '\n';

在这里插入图片描述
将100w的数据量加载到mysql中所耗时间为大概17s,如果采用insert语句去加载数据,大概需要耗时十多分钟,这个load加载数据的效率提升还是十分明显的。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44860226/article/details/131861472