接口性能优化(数据库篇)

接口性能优化(数据库篇)

1.数据库层面

1.1.给需要频繁查询的数据新增索引

​ 今天在进行报表查询操作时,我发现原先的 SQL 查询需要大约 3 秒的时间,这个速度在可接受的范围内。但是,当新需求需要增加更多的详细查询条件时,查询的表数据量增加了几倍,这导致了查询条件增加后 SQL 的查询时间扩大到了 13 秒。

为了解决这个问题,我首先进行了原始 SQL 的优化:

  • 减少了非必要的函数调用,因为函数计算会增加查询的负担;
  • 尽可能地使用 Join 查询代替子查询;
  • 为关键字段添加索引(这个操作直接提升了查询性能,具体来说,查询时间从 13 秒缩短到了 120 毫秒)。

这次添加索引明显地提升了查询性能,对于我的业务场景来说,效果非常明显。

添加索引的优缺点可以简单概括如下:

优点:

  • 提高查询速度:索引极大地加快了数据检索速度,使得查询操作更高效。
  • 加速表连接:对于JOIN操作,索引能显著提升处理速度。
  • 优化排序和分组速度:索引支持快速排序和分组查询。

缺点:

  • 降低更新速度:每当数据被添加、删除或修改时,索引也需要被更新,这会减慢数据的更新速度。
  • 占用更多空间:索引需要额外的物理空间来存储。
  • 增加维护成本:索引需要定期维护和重建,增加了数据库的维护负担。
1.2.数据库表设计优化
  • 减少数据冗余存储
  • 索引优化(索引会大幅增加查询效率,但会降低写操作效率)
  • 避免使用数据库关键词作为列名表名(例如:oracle的ROWID,level等等)

2.代码层面

2.1 减少数据库访问次数

​ 在循环内进行数据库操作是一个常见的性能瓶颈产生地。应尽可能的减少数据库操作的次数,对于需要执行的多条查询语句,可以使用批处理(例如MybaitsPlus的saveBatch方法)的方式一次性执行,减少网络开销和数据库压力。另外,如果有大量重复的数据库查询,应考虑使用查询结果缓存来避免重复访问。

2.2 实施懒加载

​ 对那些无需立即加载的数据,我们可以运用懒加载(lazy loading)的策略。在使用Spring Framework时,可以利用@Lazy注解实现此目的。只有在真正需要数据时,才进行数据库查询和数据加载,这样可以有效节约资源,提升系统的响应速度。

2.3 利用缓存技术

​ 对于访问频繁且变动少的数据如配置信息、用户登录信息等,我们可以采用缓存技术进行优化。例如,可以使用Redis作为缓存中间件,将常用数据存储在内存中,进而大幅提升访问速度并降低数据库的访问压力。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值