主要观点总结
本文介绍了使用MyBatisPlus进行优化的一些技巧,包括避免使用isNull判断、明确Select字段、批量操作方法替代循环、Exists方法子查询、使用orderBy代替last、LambdaQuery确保类型安全、用between代替ge和le、排序字段注意索引、分页参数设置、条件构造处理Null值、查询性能追踪、枚举类型映射、自动处理逻辑删除、乐观锁更新保护、递增和递减等。
关键观点总结
关键观点1: 避免使用isNull判断
使用具体的默认值来提高代码的可读性和维护性,避免NULL值使索引失效、增加CPU开销和占用额外的存储空间。
关键观点2: 明确Select字段
避免大量无用字段的网络传输开销,利用索引覆盖、避免回表查询、减少数据库解析和序列化的负担,降低内存占用。
关键观点3: 批量操作方法替代循环
减少数据库连接的创建和销毁开销,批量操作可以在一个事务中完成,提高数据一致性,显著减少网络往返次数,提升吞吐量。
关键观点4: Exists方法子查询
使用EXISTS基于索引的快速查询,当外表数据量大时,EXISTS的性能优势更明显。
关键观点5: 使用orderBy代替last
避免直接字符串拼接和SQL注入风险,动态SQL可能破坏SQL语义完整性,last会绕过MyBatis-Plus的安全检查机制。
关键观点6: LambdaQuery确保类型安全
编译期类型检查,避免字段名拼写错误,提高代码的可维护性和可读性。
关键观点7: 用between代替ge和le
生成的SQL更简洁,减少解析开销,数据库优化器可以更好地处理范围查询。
关键观点8: 排序字段注意索引
索引天然具有排序特性,可以避免额外的排序操作,利用索引排序可以实现流式读取。
关键观点9: 分页参数设置
控制单次查询的数据量,提高首屏加载速度,减少网络传输压力,数据库资源利用更合理。
关键观点10: 条件构造处理Null值
优雅处理空值,避免无效条件,减少代码中的if-else判断,提高代码可读性。
关键观点11: 查询性能追踪
使用性能追踪工具自动记录查询耗时,帮助识别慢查询,优化数据库性能。
关键观点12: 枚举类型映射
使用枚举类型映射提高代码类型安全和可读性,自动处理数据库和枚举之间的转换。
关键观点13: 自动处理逻辑删除
通过逻辑删除注解自动过滤已删除数据,支持数据恢复,减少手动编写删除逻辑。
关键观点14: 乐观锁更新保护
使用乐观锁版本号自动处理并发更新冲突,提高数据一致性和并发性能。
关键观点15: 递增和递减:setIncrBy 和 setDecrBy
使用setIncrBy和setDecrBy进行递增和递减操作,避免使用setSql,提高代码可维护性和安全性。
文章预览
👉 这是一个或许对你有用 的社群 🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入 「 芋道快速开发平台 」 知识星球。 下面是星球提供的部分资料: 《项目实战(视频)》 :从书中学,往事上 “练 ” 《互联网高频面试题》 :面朝简历学习,春暖花开 《架构 x 系统设计》 :摧枯拉朽,掌控面试高频场景题 《精进 Java 学习指南》 :系统学习,互联网主流技术栈 《必读 Java 源码专栏》 :知其然,知其所以然 👉 这是一个或许对你有用的开源项目 国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。 功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能: Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
………………………………