zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

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

数据 一个 判断 是否 主键 存在 改进 三次
2023-06-13 09:13:14 时间

第一次

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

存在问题:

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

第二次

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

SELECT * 
FROM 数据库表 
WHERE #字段名={参数} 
LIMTE 1

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

存在问题:

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

第三次

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

SELECT * 
FROM 数据库表 
WHERE #字段名={参数} 
LIMTE 1

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

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

Post Views: 75