栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于 有些数据量特别大的表的 条件查询时 一定要 先判断为null 和 ‘‘,以及mybatis 封装数据到实体类 list的初始大小

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于 有些数据量特别大的表的 条件查询时 一定要 先判断为null 和 ‘‘,以及mybatis 封装数据到实体类 list的初始大小

1.mybatis查询时,查询前首先就会先,new ArrayList<>,所以list一定是实例化了的,只是如果查询的total是0,那么就不会封装实体类,即 list.size() = 0 , 所以 List<> list = mapper.xxx(),我们定义的 list 是实例化了的,不会为null,不会出现 null指针异常的情况,但是 如果 (List list),list是传参过来的,那么list是有可能为 null的,是有可能出现 null指针异常的,出现 null指针异常了,大不了就是 运行出现问题了,再 改代码,判断一下是否为 null即可,但是如果 条件查询的时候,不判断条件是否为 null 和 “” ,那么 一旦条件为 null,那么就会走全表查询,但是有些表的数据大到 上亿,这种表是不能走全表查询的,一定要走条件查询,但是在 xml编写的时候,我们只能编写 where标签,所以 我们只能 说在,认为设定上,不能让 条件为 null, 但是我们不能保证 条件一定不能为null,所以我们只能在代码层面,在 这种表的查询前,首先判断 条件是否为 null “”,为 null “” , 不走 查询,但是只有几张大表是这样的情况,毕竟大多数表,条件为 null “” 是由业务背景的,比如 不输入条件 那就全表查询的 这种情况。

对于大多数表,业务表,都必须地走条件查询,只有少数基础数据维护的表可以走全表查询

走了全表查询的致命影响(不判空的致命写法导致的问题)
1.java层面,数据量太大,一个List接受 上亿数据,OOM
2.数据库层面,IO会一下子飙升
处理不好,系统和数据库都会奔溃

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888579.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号