可以采用以下方法来优化MyBatis查询映射语句:
- 对结果集使用列别名,避免属性名和列名不一致
select
u.id as userId,
u.name as userName
from
user u
- 使用表别名缩短表名
select
u.id,
u.name
from
user u
- 使用where子句代替in条件
where id in (1,2,3)
改为:
where id = 1 or id = 2 or id =3
- 使用left join代替子查询
避免在from或where语句中嵌套子查询。 - 尽量将常量定义为parameter,避免硬编码
select * from user where status = #{status}
- 添加分页,限制返回行数
防止由于大结果集而影响性能。 - 避免使用* ,只选择需要的字段
select id, name from user
- 使用sql片段抽取重复的代码
提高代码可维护性。 - 使用缓存机制,如二级缓存
避免不必要的重复查询。 - 补充索引,优化查询执行计划
尽量避免全表扫描。