优化sql查询的速度

首先影响查询速度的原因大概有三点:

1: 网络原因

2:代码原因

3:磁盘写入原因

接口入参时间 与 出参时间 用出参时间-入参时间得到最终的毫秒数

写入数据库变慢

1. 将单独 变成 批量

查询速度变得很慢

1. 增加索引,避免索引失效

2.数据量大 有笛卡尔乘积 ,先将笛卡尔积换成数据教少的数据

3.使用中间件 ,读写分离 分库分表

我们可以优化的只有选项2

案例:

第一个添加方法不是在xml循环添加,在service层进行for循环添加

第二个添加方法是在xml循环sql进行添加

两个执行的速度相差五十多倍,原因是在service写for循环进行添加他每循环一次都会创建和关闭数据库的会话,而创建和关闭这两步就要花费1秒的时间,所以执行的数据越多,越读越慢。

而在sql循环的添加方法只需要执行一次数据库,也就是说只需要创建和关闭一次,所以速度很快。

案列:
sql循环:一个教师里面有三十多个人,相当于第一个人开一次门,后面的人直接出去,最后一个人再关门,速度很快。

for循环:是指每一个人出去都要开门关门,人要是多了开关门就需要很多时间,这就导致速度变得很慢。

除此之外

还可以添加索引,查询速度会有显著的提升

在类型一栏有看到有ref说明使用索引查询,没有使用的话会显示all

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优化SQL查询速度,可以考虑以下几个方面: 1. 确定合适的索引:通过为频繁使用的列创建索引,可以加快查询速度。可以使用EXPLAIN语句来确定查询执行计划,并分析是否使用了索引。优先考虑创建联合索引,以覆盖常用的查询条件。 2. 优化查询语句:避免使用过多的子查询或者嵌套查询,尽量简化查询语句。可以通过使用JOIN来替代子查询。同时,确保查询语句中只选择需要的字段,避免返回过多不必要的数据。 3. 避免使用通配符查询:尽量避免使用通配符进行模糊查询,特别是在LIKE操作中以%开头的模糊查询,因为这样的查询无法使用索引,会导致查询速度变慢。如果必须使用通配符查询,可以考虑使用全文索引或者引入搜索引擎来提高性能。 4. 适当分拆表和合并表:如果表中数据量较大,可以将其分拆为多个子表,在查询时只查询必要的子表,以减少查询的数据量和提高查询速度。同时,对于有关联的表,可以根据查询的频率和复杂度,考虑将其合并为更小的表,减少JOIN操作。 5. 合理分配硬件资源:通过增加CPU、内存和磁盘等硬件资源,可以提高数据库的性能。同时,也可以通过调整数据库参数,例如增大缓冲区大小和调整查询缓存等,来提升查询的速度。 6. 使用存储过程和视图来优化查询:将一些频繁使用的查询逻辑封装在存储过程中,可以减少网络开销和优化执行计划。视图可以提供某些常用查询的简化版本。 总之,优化SQL查询速度需要综合考虑索引、查询语句、数据结构、硬件资源等因素,根据具体情况采取相应的措施来提高查询性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值