判断一个非主键字段是否存在数据的三次改进
数据 一个 判断 是否 主键 存在 改进 三次
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
相关文章
- 实现一个简单版 Vue2 双向数据绑定
- 造数据神器Faker,一个有趣又实用的Python第三方库
- EasyCVR获取大华客流量数据时有一个设备未上传该如何解决?
- Redis + NodeJS 实现一个能处理海量数据的异步任务队列系统
- 如何根据Excel某列数据为依据分成一个新的工作表
- 订单数据越来越多,如何优化数据库性能?
- 为训练数据建一个TB级计算「飞地」,联邦学习的靠谱实现方式了解一下?
- (六)监听响应数据的变化
- python – 数据容器
- springMvc通过Map形式接收多个参数form表单数据详解编程语言
- JDBC批量插入数据优化,使用addBatch和executeBatch详解编程语言
- 使用IDEA连接MySQL:让你更快与数据建立联系(ideamysql驱动)
- MySQL中存储的二进制数据(mysql二进制数据)
- 如何在Oracle中将数据导入另一个表?(oracle导入另一个表)
- MySQL如何高效存储和管理一个表格的数据(mysql一个表格数据)
- 使用Redis存储数据实现数据的高效保存(如何保存到redis上)
- Oracle SQL语句实现列数据修改(oracle修改列sql)
- 使用Redis构建一个更稳定的数据选择库(redis 选择库)
- Redis中可存储容量的极限究竟是多少(redis能存储多大数据)
- 一个实例告诉你:Kaggle 数据竞赛都有哪些套路
- LinqtoSQL插入数据时的一个问题
- asp读取通过表单发送的post数据
- 在liunx中编写一个脚步定期删除mysql中的数据实现步骤
- php中使用临时表查询数据的一个例子
- 使用PHP导出Redis数据到另一个Redis中的代码