错误原因 在学习多对一映射处理中的级联方式处理映射关系时 , 发现自己查询的结果有一个为为null 于是就开始对代码进行排查 , debug ,最终发现错误 , 原来是自己映射中的 property
" : "", "author" : "Mike Wilson", "cate_id" : "223", "list_order" : "6", } 平常用Mysql比较多所以在查询时自然想到...list_order的值存储为整数类型 { "_id" : "28847", "title" : "Node即学即用", "subtitle" : "", "author
目录 背景 JDBC 中的 ResultSet 简介 简单映射 回归最初的问题:查询结果为空时的返回值 结论 背景 一行数据记录如何映射成一个 Java 对象,这种映射机制是 MyBatis 作为 ORM...看完这篇你就知道查询结果为空时候为什么集合会是空集合而不是 NULL,而对象为什么会是 NULL 了。 PS:对过程不感兴趣的可以直接跳到最后看结论。...回归最初的问题:查询结果为空时的返回值 | 返回结果为单行数据 可以从 ResultSetHandler的handleResultSets 方法开始分析。...如果返回值是 Java 集合类型,如 List、Map,会先初始化(new 一个集合对象),再把结果添加进去;如果返回值是普通对象,查询不到时,返回值是 null。...所以不管是集合类型还是普通对象,Mybatis 都会先初始化一个 List 存储结果,然后返回值为普通对象且查为空的时候,selectOne 会判断然后直接返回 NULL 值。
背景 今天出现了一个bug,在数据库中我们将订单表中的order_no从之前的bigint(20)改成varchar(20)后,原有的代码逻辑在进行时查询时,之前是以Long类型传参查询的。...根源 mysql5.7 查询varchar类型的数据时,不加引号,触发隐式转换导致的查询结果错误。...当扫描到第一行时,204027026112927605转成doule的值为2.0402702611292762e17,等式成立,判定为符合条件的行,继续往下扫描,同理204027026112927603...,隐式转换的类型主要有字段类型不一致、in参数包含多个类型、字符集类型或校对规则不一致等 隐式类型转换可能导致无法使用索引、查询结果不准确等,因此在使用时必须仔细甄别 数字类型的建议在字段定义时就定义为...int或者bigint,表关联时关联字段必须保持类型、字符集、校对规则都一致
VLookup无疑是Excel中进行数据匹配查询用得最广泛的函数,但是,随着企业数据量的不断增加,分析需求越来越复杂,越来越多的朋友明显感觉到VLookup函数在进行批量性的数据匹配过程中出现的卡顿问题也越来越严重...Thinkpad X250 核心配置:CPU i5-5200U @2.20GHz(4核)+ 内存 8GB + 固态硬盘 系统:Windows 7(64位) Excel版本:2016(64位) 三、 测试方法 为尽可能减少相关程序及不同工作簿之间可能造成的干扰...六、 对公式法的改进 考虑到仍有大量的朋友没有使用PowerQuery,我在想: 是否有可能对公式进行一定程度的改进,以实现效率上的提升? PowerQuery的合并查询效率为什么会这么高?...PowerQuery进行合并查询的思想是否可能借鉴用于公式查询?...在思考这些问题的时候,我突然想到,Power Query进行合并查询的步骤,其实是分两步的: 第一步:先进行数据的匹配 第二步:按需要进行数据的展开 也就是说,只需要匹配查找一次,其它需要展开的数据都跟着这一次的匹配而直接得到
bug如下图: 困扰了我好长时间,在老师和同学的帮助下,终于解决了。原因是字段名没有对应 改成和数据库字段名一样即可,并将实体类的相关方法重新编写即可
= null and model.auditorStatus !...= '' "> and a.audit_state = #{model.auditorStatus} 判断该字段值如果不为null或者不等于' ',就进行该sql 字段条件拼接。...后端用Integer接收的0传入 以model.auditorStatus 这一步进行取值,现在有两种情况,要么值没传进去被判空false,要么if判断 auditorStatus 有值但执行内部逻辑判断时出了问题...= '' 执行结果竟然真的为false,0 != '',这明显为true啊。...四、解决方案 1️⃣方案1 做法:不用Integer接收,使用String类型接收。 2️⃣方案2 做法:去掉【model.auditorStatus!
直接说应用场景,json文件中有一个如下配置: [{"name":"John Doe","age":28,"jsonNode":null},{"name":"John1","age":31}]...public JsonNode getJsonNode() { return jsonNode; } } 将上述字符串反序列化成对应TestClass列表时会出现,jsonNode为NullNode...的情形,但是在json字符串中实际为null,显然这不是想要的效果,笔者想要的效果时反序列化后jsonNode仍然为null,要实现上述效果加上一个注解就可以,调整后的效果如下所示: @Data static...= Nulls.SKIP) private JsonNode jsonNode; public TestClass() { this.jsonNode = null
:重构查询规则;丰富查询控件类型、控件默认值、支持JS、CSS增强 支持导出图片 支持分版功能(左右并排两个列表) 支持分栏功能 支持自定义分页条数 支持存储过程 表达式优化忽略大小写 小数点变成了千分符...如果yml文件中的pageSize没有设置10,在预览报表时,查询结果仍然是十条结果issues/I42978 1.3.64-beta PDF导出图片不全issues/I41JHS 导出PDF出现 NullPointerExceptionissues.../I469F5 数值类型太长,科学计数法,SUM时不统计问题issues/#497 交叉报表导出excel表头中文显示乱码issues/#406 查询下拉框取值,SQL语句中添加报表参数(时间范围)后,...issues/I47BSG API自定义查询条件,报表参数问题:模糊查询“+”号被转成空格字符串issues/I46RAJ 导出excel图片为空时报错issues/I48AZC 纵向组分小计保留小数位...:直接写文本;支持数值类型的文本设置小数位数 │ │ ├─图片类型:支持上传一张图表;支持图片动态生成 │ │ ├─图表类型 │ │ ├─函数类型 │ │ └─支持求和 │ │ └─
8.必须把字段定义为NOT NULL并且提供默认值 a)null的列使索引/索引统计/值比较都更加复杂,对MySQL来说更难优化。...=’nx’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录。...9.禁止使用TEXT、BLOB类型 会浪费更多的磁盘和内存空间,非必要的大量的大字段查询会淘汰掉热数据,导致内存命中率急剧降低,影响数据库性能。...因为MySQL优化器在选择如何优化查询时,会根据统一信息,对每一个可以用到的索引来进行评估,以生成出一个最好的执行计划,如果同时有很多个索引都可以用于查询,就会增加MySQL优化器生成执行计划的时间,同样会降低查询性能...>、NOT IN、NOT LIKE等,会导致全表扫描 b)%开头的模糊查询,会导致全表扫描 (4)禁止大表使用JOIN查询,禁止大表使用子查询 理由:会产生临时表,消耗较多内存与CPU,极大影响数据库性能
高并发情况下容易造成数据库性能,大数据高并发业务场景数据库使用以性能优先 四、字段设计规范 必须把字段定义为NOT NULL并且提供默认值 解读: a)null的列使索引/索引统计/值比较都更加复杂...,对MySQL来说更难优化 b)null 这种类型MySQL内部需要进行特殊处理,增加数据库处理记录的复杂性;同等条件下,表中有较多空字段的时候,数据库的处理性能会降低很多 c)null值需要更多的存储空...=’shenjian’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录 禁止使用TEXT、BLOB类型 解读:会浪费更多的磁盘和内存空间,非必要的大量的大字段查询会淘汰掉热数据...五、索引设计规范 单表索引建议控制在5个以内 单索引字段数不允许超过5个 解读:字段超过5个时,实际已经起不到有效过滤数据的作用了 禁止在更新十分频繁、区分度不高的属性上建立索引 解读: a)更新会变更...>、NOT IN、NOT LIKE等,会导致全表扫描 b)%开头的模糊查询,会导致全表扫描 禁止大表使用JOIN查询,禁止大表使用子查询 解读:会产生临时表,消耗较多内存与CPU,极大影响数据库性能
3、数据类型越短越好,尽量避免NULL(NULL索引,统计,比较更复杂,可为NULL的列需要的存储空间更多) 4、整数(tinyint 8位,smallint 16位,mediumint 24位,int...32位,bigint 64位储储空间) mysql 可为整数指定列宽,但是列宽只是为图像化界面显示字符个数 5、decimal 可指定小数点前后允许的最大位数,消耗存储空间,mysql 将数字打包在二进制字符串中...,每4个字节存储9个数字,小数点占一个字节 6、float 在存储相同范围的数据,占用存储空间比decimal小,float 使用4个字节存储,double占用8个字节 7、varchar 存储变成字符串...将char,varchar 和枚举类型关联时,会比直接cahr,varchar关联慢。 13、datetime 保存范围大从1001~9999年,最小精度秒,与时区无关占用8个字节。...对于in中有大量值时,in查询比or快 18、mysql 文件排序需要的空间比想象的要大得多,因为mysql会给排序记录分配足够长度的固定长度的空间,排序消耗的临时空间比磁盘上原有空间大得多。
(5)禁止存储大文件或者大照片 解读:为何要让数据库做它不擅长的事情?大文件和照片存储在文件系统,数据库里存URI多好。...=’shenjian’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录。...(15)禁止使用TEXT、BLOB类型 解读:会浪费更多的磁盘和内存空间,非必要的大量的大字段查询会淘汰掉热数据,导致内存命中率急剧降低,影响数据库性能。...五、索引设计规范 (19)单表索引建议控制在5个以内 (20)单索引字段数不允许超过5个 解读:字段超过5个时,实际已经起不到有效过滤数据的作用了。...(28)禁止大表使用JOIN查询,禁止大表使用子查询 解读:会产生临时表,消耗较多内存与CPU,极大影响数据库性能。
一、前言 程序访问 MySQL 数据库时,当查询出来的数据量特别大时,数据库驱动把加载到的数据全部加载到内存里,就有可能会导致内存溢出(OOM)。...() 可以实现流式查询,在执行 ResultSet.next() 方法时,会通过数据库连接一条一条的返回,这样也不会大量占用客户端的内存。...三、性能测试 创建了一张测试表 my_test 进行测试,总数据量为 27w 条,分别使用以下4个测试用例进行测试: 大数据量普通查询(27w条) 大数据量流式查询(27w条) 小数据量普通查询(10...条) 小数据量流式查询(10条) 3.1....查询耗时 10 条数据量用时 1 秒 ? 四、总结 MySQL 流式查询对于内存占用方面的优化还是比较明显的,但是对于查询速度的影响较小,主要用于解决大数据量查询时的内存占用多的场景。
高并发情况下容易造成数据库性能,大数据高并发业务场景数据库使用以性能优先 四、字段设计规范 (14)必须把字段定义为NOT NULL并且提供默认值 解读: a)null的列使索引/索引统计/值比较都更加复杂...,对MySQL来说更难优化 b)null 这种类型MySQL内部需要进行特殊处理,增加数据库处理记录的复杂性;同等条件下,表中有较多空字段的时候,数据库的处理性能会降低很多 c)null值需要更多的存储空...=’shenjian’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录 (15)禁止使用TEXT、BLOB类型 解读:会浪费更多的磁盘和内存空间,非必要的大量的大字段查询会淘汰掉热数据...五、索引设计规范 (19)单表索引建议控制在5个以内 (20)单索引字段数不允许超过5个 解读:字段超过5个时,实际已经起不到有效过滤数据的作用了 (21)禁止在更新十分频繁、区分度不高的属性上建立索引...>、NOT IN、NOT LIKE等,会导致全表扫描 b)%开头的模糊查询,会导致全表扫描 (28)禁止大表使用JOIN查询,禁止大表使用子查询 解读:会产生临时表,消耗较多内存与CPU,极大影响数据库性能
COMMENT '查询控件类型' AFTER `search_flag`, ADD COLUMN `search_mode` int(1) NULL COMMENT '查询模式1简单2范围' AFTER...issues/I3Y6PZ 单类别的图表修改颜色后无法保存 #361 传参报表 下拉框可选项 多于实际内容 #326 带换行符的文本显示问题 issues/I3Y36C 导出Excel 的时候报错 #362 查询时回车...,会刷新页面,而不是返回查询结果 #374 报表设计权限管理(只能看到自己创建的报表) #368 联动钻取报表超链接设置——原始参数下拉框无可选数据字段 issues/I40TVU 大量数据时使用导出Excel...,可自由拼接、组合,设计炫酷大屏 可设计各种类型的单据、大屏,如出入库单、销售单、财务报表、合同、监控大屏、旅游数据大屏等 #系统截图 报表设计器(专业一流 数据可视化,解决各类报表难题) 报表设计器...:直接写文本;支持数值类型的文本设置小数位数 │ │ ├─图片类型:支持上传一张图表;支持图片动态生成 │ │ ├─图表类型 │ │ ├─函数类型 │ │ └─支持求和 │ │ └─
这里(M)是表示二进制的位数,位数最小值为1,最大值为64。 注意:在向BIT类型的字段中插入数据时,一定要确保插入的数据在BIT类型支持的范围内。...在向TEXT类型的字段保存和查询数据时,系统自动按照实际长度存储,不需要预先定义长度。这一点和VARCHAR类型相同。...例如,SELECT * 查询就不是很好的想法,除非你能够确定作为约束条件的WHERE子句只会找到所需要的数据行。否则,你可能毫无目的地在网络上传输大量的值。...它还使你在主数据表上运行 SELECT * 查询的时候不会通过网络传输大量的BLOB或TEXT值。...下面展示几种常见的几何图形元素: 下面展示的是多个同类或异类几何图形元素的组合: 小结及选择建议 在定义数据类型时: 如果确定是 整数 ,就用 INT; 如果是 小数 ,一定用定点数类型DECIMAL
因此,对于非常大的列表,使用普通的链表或者哈希表可能更适合。适用场景:存储大量较小的元素:当需要存储大量小数据量的元素时,压缩列表可以节省内存空间,并提供更快的访问性能。...Redis的压缩列表在存储和查询大量小数据时更加高效的原因:更小的内存占用:压缩列表使用紧凑的数据结构来存储数据,相比于其他数据结构(例如哈希表或有序集合),它占用的内存更少。...这对于存储大量小数据非常有利,因为它可以节省内存并提高性能。更高的数据局部性:在压缩列表中,连续存储的元素彼此相邻,这意味着相邻的元素在物理上也是相邻的。...在查询大量小数据时,这种局部性可以提高缓存的命中率,减少对内存的访问时间,从而提高查询效率。更少的内存分配和释放:压缩列表使用连续的内存块来存储数据,减少了内存分配和释放的开销。...综上所述,Redis的压缩列表在存储和查询大量小数据时更加高效,因为它可以节省内存,具有更好的数据局部性,减少内存分配和释放的开销,并且对范围查询具有良好的支持。
尽量避免 NULL:如果查询中包含可为 NULL 的列,对 MySQL 来说更难优化,因为可为 NULL 的列使得索引、索引统计和值比较都更负责。...不过一般将 NULL 的列改为非 NULL 性能提升比较小,在对应列建索引时应避免设计为可为 NULL。 二、整数类型 存储整数,可以使用的类型及存储空间如下 ?...DECIMAL 只是一种存储格式,在计算时会转换为 DOUBLE 类型。并且 DECIMAL 占用空间比 FLOAT 和 DOUBLE 大,如果只是存储不计算,可以使用 FLOAT。...③ InnoDB 会把过长的 VARCHAR 类型存储为 BLOB char ① char 类型是定长的。...因为虽然存储时只使用了具体值大小的空间,但是在使用内存临时表进行操作时会很糟糕,Memory 引擎只支持定长的行,变长字段也会根据最大长度分配。
PG使用固定大小的页面,这就给存储大值带来了巨大挑战。为解决这个问题,大数据值被压缩并分成多个较小的块。这个过程自动完成,不会显著影响数据库的使用方式。...它可以保存大量二进制数据。当向表中插入大图像时,PG会自动创建一个TOAST表,将图像数据和主表分开存储。然后查询pg_class系统表可以看到已创建的TOAST表。...但是需要注意:虽然TOAST表有助于存储大对象数据,但会增加数据库的复杂性,因此应该谨慎使用。此外,在某些情况下,当数据分布在不同的表中时,查询性能会降低,具体取决于查询条件。...2)查询性能 涉及存储在TOAST表中的大型数据对象的查询可能比具有较小数据对象的查询慢。因为数据库需要先从TOAST表中获取数据才能用于查询。...例如有一个包含大量文本列的表并希望在需要子字符串操作时提高性能,则可以使用EXTERNAL策略。设计表时,请考虑存储在列中数据的大小和类型,并选择能够满足应用程序性能和空间要求的合适存储策略。
领取专属 10元无门槛券
手把手带您无忧上云