首先影响查询速度的原因大概有三点:
1: 网络原因
2:代码原因
3:磁盘写入原因
接口入参时间 与 出参时间 用出参时间-入参时间得到最终的毫秒数
写入数据库变慢
1. 将单独 变成 批量
查询速度变得很慢
1. 增加索引,避免索引失效
2.数据量大 有笛卡尔乘积 ,先将笛卡尔积换成数据教少的数据
3.使用中间件 ,读写分离 分库分表
我们可以优化的只有选项2
案例:
第一个添加方法不是在xml循环添加,在service层进行for循环添加
第二个添加方法是在xml循环sql进行添加
两个执行的速度相差五十多倍,原因是在service写for循环进行添加他每循环一次都会创建和关闭数据库的会话,而创建和关闭这两步就要花费1秒的时间,所以执行的数据越多,越读越慢。
而在sql循环的添加方法只需要执行一次数据库,也就是说只需要创建和关闭一次,所以速度很快。
案列:
sql循环:一个教师里面有三十多个人,相当于第一个人开一次门,后面的人直接出去,最后一个人再关门,速度很快。
for循环:是指每一个人出去都要开门关门,人要是多了开关门就需要很多时间,这就导致速度变得很慢。
除此之外
还可以添加索引,查询速度会有显著的提升
在类型一栏有看到有ref说明使用索引查询,没有使用的话会显示all
标签:添加,查询,索引,循环,sql,速度,优化 From: https://blog.csdn.net/srlahsly/article/details/142144034