首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >判断一个非主键字段是否存在数据的三次改进

判断一个非主键字段是否存在数据的三次改进

作者头像
Diuut
发布2022-11-22 19:28:45
发布2022-11-22 19:28:45
8030
举报
文章被收录于专栏:DiuutDiuut

第一次

封装一个HashMap,将查询条件put进去,然后使用MyBites的默认方法SelectByMap,查出来一个List,然后根据List.size!=0,判断该条数据是否存在存在问题

存在问题:

如果数据库表中存在10W条数据,通过默认方法查询一个List,即使查到了一个重复的,数据库还是会继续查下去,直至走完10W条数据,导致浪费数据库资源。

第二次

通过MyBites注解自定义SQL语句写到Dao层接口中,加上@SELECT注解,在注解后参数中写入SQL语句

代码语言:javascript
复制
SELECT * 
FROM 数据库表 
WHERE #字段名={参数} 
LIMTE 1

同样返回一个List,然后根据List.size!=0,判断该条数据是否存在,LIMIT 1 限定了只查一条,查到了一条符合条件的数据后就返回,不会继续走完整个表。

存在问题:

如果数据库表字段特别长,每次查询,即使加了LIMIT 1,只查询一条,但是也会把所有字段加载出来,导致浪费数据库资源。

第三次

同第二次一样自定义SQL语句

代码语言:javascript
复制
SELECT * 
FROM 数据库表 
WHERE #字段名={参数} 
LIMTE 1

count(1),其实就是计算一共有多少符合条件的行。 1并不是表示第一个字段,而是表示一个固定值。

最后一次解决了数据库表中数据特别多,字段特别长的情况下的数据库资源浪费,并且简化了判断数据存在的方式,直接返回一个int数值,通过判断这个数值!=0,就可以判断出该条数据是否存在。

Post Views: 75

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年3月25日,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档