avatar
文章
100
标签
20
分类
20

主页
文章
标签
分类
TranquilXuan
搜索
主页
文章
标签
分类

TranquilXuan

MyBatis ResultMap 吞行问题
发表于2026-07-17|后端MyBatis|后端•MyBatis
MyBatis ResultMap 吞行问题 你写了一对多关联查询,数据库中明明有 10 行数据,MyBatis 返回的列表却只有 3 条。剩下的 7 行去哪了?这就是经典的 ResultMap “吞行”问题。 现象:数据去哪了?假设你有一张订单表 t_order 和一张订单明细表 t_order_item,一个订单可以包含多个商品明细: 123456789101112-- 订单CREATE TABLE t_order ( id BIGINT PRIMARY KEY, order_no VARCHAR(32));-- 订单明细CREATE TABLE t_order_item ( id BIGINT PRIMARY KEY, order_id BIGINT, product_name VARCHAR(64)); 你写了一个 SQL 用 JOIN 关联查询: 123456789<select id="getOrders" resultMap="OrderResultMap"> SELECT ...
doris物化视图
发表于2025-01-05|数据架构|数据架构
Doris物化视图Apache Doris 物化视图详解1. 概述物化视图是一种预计算和储存数据的机制,它通过将复杂查询预算结果以视图的形式保存,以提高进一步查询的性能。对于大数据分析场景,物化视图可以最大稍少进一步计算,为 BI 分析和报表运行提供支持。 Apache Doris 作为一个面向分布式数据库分析的 MPP 架构,支持为大规模数据进行实时分析和回馈。物化视图是它的一个重要特性,可用于提升查询性能。 2. Doris 中物化视图的特点 自动选择符合的物化视图:在执行查询时,Doris 会根据查询的 SQL 自动匹配适合的物化视图,无需手动指定。 增量更新与数据不一致性操作:物化视图通过增量更新保证高效性和实时性。 支持复杂查询的预算:对于带有积分和聚合操作的复杂查询,物化视图可以显著提高性能。 更简单的管理方式:通过一套简单的命令,创建和维护物化视图,构造操作涉及深。 3. 创建物化视图在 Doris 中,创建物化视图的基本语法如下: 12345CREATE MATERIALIZED VIEW mv_nameASSELECT <column_list>FROM ...
Closeable接口
发表于2025-01-02|后端Java|后端•Java
Closeable通常来说,Closeable接口的使用需要配合 try with resource,关闭时自动执行Closeable接口定义的 close 方法 如果没有实现这个接口,就无法使用 try with resource,且需要手动关闭资源
永不放弃——特朗普自述 NEVER GIVE UP
发表于2024-12-20|读书笔记|读书笔记
永不放弃——特朗普自述【笔记整理】 关注解决之道,而不要抱怨出现的问题。 你的生意做的越大,你的人生境界越高,那么你遭遇的困难也会越有挑战性。如果你有这样的思想准备,那么在遇到困难时自己的情绪波动就不会太大,也不会无谓地烦恼甚至积郁成疾。 如果你觉得一个人在苦苦打拼,那么你可以用这种积极的精神力量来鼓励自己,内在的信念往往是人们分出伯仲高下的隐性分水岭。失败者往往都会选择放弃。 如果你遇到需要让你投入更多时间的情形,你不妨尝试一下,让自己渐入佳境。你最后都会为自己每天的成就而感到惊讶。 有的时候,如果你把所有可能出现的问题都考虑到了之后,你就不妨可以去想象可能会出现什么好事了。 勇气意味着绝不放弃。背弃理想很容易,失败者往往就是缩手缩脚的。被打倒是一回事,而自暴自弃则是另一回事。一些看似平凡的人之所以能够创下丰功伟业,正是因为他们的百折不挠和永不放弃的精神。 海明威说过一句名言:“勇气就是优雅地面对压力。” 勇气还有另一个好处,那就是能够帮助你用正确的思维来考虑问题和做出行动,它会让你关注面前的机遇,而非障碍。其实,很多问题换个角度去考虑就是机遇,只不过它的表现形式让我们 ...
SQL必知必会-读书笔记(十三)
发表于2024-12-16|读书笔记|读书笔记
SQL必知必会-读书笔记(十三)存储过程是什么存储过程(Stored Procedure) 是一组预编译的SQL语句,它们被存储在数据库中,可以像函数一样被调用。存储过程可以接受输入参数、输出参数,并且可以包含控制流语句(如条件判断、循环等)。存储过程的主要目的是提高数据库操作的效率和安全性,减少网络流量,并且可以封装复杂的业务逻辑。 优点 提高性能:存储过程在创建时会被编译并存储在数据库中,执行时不需要再次编译,提高了执行效率。 减少网络流量:客户端只需要发送存储过程的调用请求,而不需要发送大量的SQL语句,减少了网络传输的数据量。 封装业务逻辑:存储过程可以封装复杂的业务逻辑,使应用程序代码更加简洁。 提高安全性:通过授予用户对存储过程的执行权限,可以限制用户直接访问底层表,提高数据的安全性。 虽然实践中基本用不到存储过程,但是可以作为了解的一环 如何创建基本语法 123456789DELIMITER //CREATE PROCEDURE procedure_name (IN param1 datatype, OUT param2 datatype)BEGIN -- S ...
SQL必知必会-读书笔记(十二)
发表于2024-12-16|读书笔记|读书笔记
SQL必知必会-读书笔记(十二)关于更新和删除 使用 UPDATE 时,只需要写一个 SET 如果想要更快地删除,可以使用 TRUNCATE TABLE,因为该命令不记录数据的变动 关于视图是什么视图是虚拟的表,只包含使用时动态检索数据的查询。 关键点视图本身不能加索引,但视图内sql的执行有可能会走索引 我理解的视图更多地用于逻辑封装,提高可读性,在追求速度和效率的场景中,暂时不了解视图带来的优势 总结视图的优点 简化查询和提高可维护性:视图可以封装复杂的查询逻辑,使查询更简单和易于维护。 视图的缺点 可能增加性能开销:视图在每次查询时都会重新执行其定义的查询,可能导致额外的性能开销,特别是在涉及大量数据或复杂查询时。
SQL必知必会-读书笔记(十一)
发表于2024-12-16|读书笔记|读书笔记
SQL必知必会-读书笔记(十一)在 MySQL 中,INSERT 语句可以使用 SELECT 子句来插入数据,但并不是所有的 SELECT 选项都可以直接用于 INSERT ... SELECT 语句中。以下是一些常见的 SELECT 选项及其在 INSERT ... SELECT 语句中的适用性: 可以使用的 SELECT 选项 基本 SELECT 子句: 1234INSERT INTO target_table (column1, column2, column3)SELECT column1, column2, column3FROM source_tableWHERE condition; JOIN 操作: 12345INSERT INTO target_table (column1, column2, column3)SELECT t1.column1, t1.column2, t2.column3FROM table1 t1JOIN table2 t2 ON t1.id = t2.idWHERE condition; 聚合函数: 1234INSERT INTO ta ...
SQL必知必会-读书笔记(十)
发表于2024-12-15|读书笔记|读书笔记
SQL必知必会-读书笔记(十)UNION性能问题多数DBMS内部会使用查询优化程序,理论上讲,相同含义的UNION和多条WHERE子句在性能上应该没有实际的差别,但实践上,查询程序并不能达到理想状态,实践中,可以通过测试两种方法工作效果更好。 UNION规则 每个子查询都需要 UNION 连接 每个子查询必须都有相同数量的列、表达式或聚集函数(不过各个列不需要以相同的次序出现) 列数据类型必须兼容,但不必完全相同,满足隐式转换条件即可 如果遇到不同列名时会发上什么? MySQL会采用第一个结果集的列名,因此,如果想要排序,也只能使用第一个字查询的别名进行排序,否则会报错 UNION 和 UNION ALL UNION总是完成与多个WHERE条件相同的工作,为此,UNION 的查询结果是自动去重的 如果希望所有字查询结果都出现,可以使用 UNION ALL 关于排序UNION 或者 UNION ALL 只能进行一次排序,对整个结果集进行排序,不允许对多个字查询进行 ORDER BY
Integer.valueOf()对比Integer.parseInt()
发表于2024-11-08|后端Java|后端•Java
Java 中 Integer.valueOf() 和 Integer.parseInt() 的区别及实践在 Java 中,处理字符串与整数的转换时,Integer.valueOf() 和 Integer.parseInt() 是最常用的两个方法。 这两个方法虽然看似相似,但在实际使用中却有一些关键的区别。本文将详细讲解这两个方法的用法、内部实现及其不同之处,并结合实际示例来帮助大家更好地理解和使用。 方法定义和基本用法1. Integer.valueOf()方法定义: 12public static Integer valueOf(String s) throws NumberFormatException;public static Integer valueOf(int i); 用法: Integer.valueOf(String s):将字符串 s 转换为 Integer 对象。 Integer.valueOf(int i):将基本数据类型 int 转换为 Integer 对象。 示例: 12Integer num1 = Integer.valueOf("123 ...
ES 文档基本操作
发表于2024-09-27|后端中间件|后端•中间件•Elasticsearch
ES 文档基本操作添加文档模版: 12345678910POST /索引库名/_doc/文档id{ "字段1": "值1", "字段2": "值2", "字段3": { "子属性1": "值3", "子属性1": "值4" } // ......} 如果没有文档id,ES会随机生成一个 示例: 123456789POST /demo_index/_doc/1{ "demo_property_1":"test_content1_text", "demo_property_2":"test_content1_keyword", "demo_property_3":{ "demo_child_property ...
12…10
avatar
TranquilXuan
潜龙勿用,或跃在渊
文章
100
标签
20
分类
20
分类
  • 博客搭建5
  • 后端65
    • Java12
    • MyBatis5
    • Spring21
    • 中间件7
    • 工具库2
    • 性能优化1
    • 数据处理3
    • 数据库13
    • 软件工程1
  • 工程实践4
    • DevOps3
    • 博客搭建1
  • 数据架构1
  • 认知思考4
  • 读书笔记14
  • 软件工程7
    • UML1
    • 设计模式6
标签
工具库 数据库 数据架构 DevOps 认知思考 MyBatis 设计模式 后端 中间件 读书笔记 博客搭建 Spring 工程实践 软件工程 Elasticsearch UML 数据处理 MySQL 性能优化 Java
归档
  • 七月 20261
  • 一月 20252
  • 十二月 20245
  • 十一月 20241
  • 九月 202424
  • 八月 20245
  • 七月 202462
网站资讯
文章数目 :
100
已运行时间 :
本站总字数 :
9.2w
本站总访问量 :
最后更新时间 :
©2024 - 2026 By TranquilXuan
京ICP备2026046208号-1
搜索
数据库加载中