- 博客(161)
- 资源 (19)
- 收藏
- 关注
原创 mysql大表的深度分页慢sql案例(跳页分页)-2
深度分页往往会带来全表扫描查询慢的问题,我们一定要分析执行计划,要么利用连续分页特性解决问题、要么利用索引扫描来解决问题。
2024-05-31 14:43:45
442
1
原创 重构--Replace Method with Method Obejct
重构--Replace Method with Method Obejct
2022-06-16 08:53:14
133
原创 重构--Replace Conditional with Polymorphism
重构手法--Replace Conditional with Polymorphism
2022-06-07 08:53:29
153
原创 如何实现数据模型的扩展性
目录1、问题背景2、HTTP协议如何实现Header的扩展性2.1常用的HTTP请求头2.2 常用的HTTP响应头2.3自定义Header信息3、Dubbo框架如何实现RpcContext的扩展性4、java字节码文件class文件如何实现扩展性5、业务代码如何实现Bean的扩展性5.1 Extendable.java编辑5.2 CostBaseEntity.java5.3 FkFkdzbExt.java5.4 FkFkdzbExt单元测试6、...
2022-05-17 10:46:22
559
原创 Object工具类大比拼
目录1、jdk Objects2、apache commons ObjectUtils3、 google MoreObjects4、spring ObjectUtils5、hutool ObjectUtil6、netty ObjectUtil1、jdk Objects通用的equals()方法判断 通用的hashCode()方法判断 通用的toString()方法 通用的isNull()、nonNull()方法2、apache commons...
2022-05-13 11:08:08
1278
原创 给实体类增加属性无须给表增加字段
目录1、问题背景2、解决方案3、代码示例3.1实体类需要继承一个CostBaseEntity基类3.2保存实体类自定义字段3.3查询实体类自定义字段3.4columnNameAndColumnValueMap属性扁平化3.4.1如何接收前端自定义字段3.4.2如何向前端输出自定义字段4、总结4.1优点4.2缺点1、问题背景随着系统的运行,由于需求不断的迭代,业务不断的深入,会发现我们当属对一个实体进行表结构设计满足不了当前、未来...
2022-05-11 10:42:32
1020
原创 通过进行条件加强减少返回记录行案例
目录目录1、通过进行条件加强减少返回记录行案例1.1 问题描述1.2 解决方案1、通过进行条件加强减少返回记录行案例1.1 问题描述 我们有一个定时任务,定时加载满足条件 STATUS IN (‘0’,‘1‘,’2‘) AND booking_time < {一个动态变化的时间} 的订单数据,然后进行状态同步。sql语句如下: SELECT * FROM flsc_order WHERE STATUS IN ( '0', '1', '2'...
2022-04-06 14:53:59
99
原创 对大量的数据使用分页查询来提高sql性能案例
目录1、对大量的数据使用分页查询来提高sql性能案例1.1 问题描述1.2 优化过程1、对大量的数据使用分页查询来提高sql性能案例1.1 问题描述 发现一个慢sql,原因是在一张60万的表进行进行查询,查询的结果集预估25万,像这种sql肯定是有问题的,我们一般没有这种需求,单次查询结果集返回超过1000条数据,并返回给客户端,因为这种需求,一般要导致全表扫描,并且磁盘IO压力比较大。 原始sql:SELECT UUID AS UUID, SKU_I...
2022-04-06 14:52:53
116
原创 给group by 列增加索引
1、给group by列增加索引1.1 问题描述需要对TEMP_SPMX_JD按照品牌名称进行分组,然后返回BRAND_NAME(品牌名称)、CATEGORY(分类)SELECT CATEGORY AS CLASSID, BRAND_NAME AS BRANDNAME FROM TEMP_SPMX_JD GROUP BY BRAND_NAME ;执行时间:耗时3 s执行计划如下:1.2分析过程 经过分析发现,对TEMP_SPMX_JD表进行了全表扫描,预扫描...
2022-04-06 14:51:53
465
原创 将联表查询简化为单表查询案例
目录1、将联表查询简化为单表查询案例1.1问题描述1.2优化过程1.2.1将联表查询修改为单表查询1.2.2利用覆盖索引避免回表1、将联表查询简化为单表查询案例1.1问题描述统计商品sku表中总数量、上架数量、下架数量SELECT count(1) AS totalNum, sum(case WHEN sku.on_state = '1' THEN 1 ELSE 0 END) AS saleOnNum, ...
2022-04-06 14:50:56
602
原创 通过将联表查询重写为子查询案例
目录1、通过将联表查询重写为子查询案例1.1问题描述1.2优化过程1、通过将联表查询重写为子查询案例1.1问题描述要根据pro_spu表中的id将pro_sku表中的spu_id进行填充,原始sql如下:update pro_sku a , pro_spu b set a.spu_id = b.id where a.supplier_spu_id = b.supplier_spu_id and a.supplier_id=b.supplier_id执行结果如下...
2022-04-06 14:49:44
123
原创 联表查询给外键列增加索引
目录1、联表查询给外键列增加索引1.1 问题描述1.2优化效果1、联表查询给外键列增加索引1.1 问题描述在开发环境发现一个sql执行比较 慢,耗时大概1024ms,sql如下:SELECT b.id, b.multi_spec_template_id, b.name FROM pro_multi_spec_template a, pro_mul.
2022-04-06 14:48:42
171
原创 Multi-Range Read 索引纠错
目录1、Multi-Range Read 纠错2、Multi-Range Read 原理3、实验3.1 无MMR会话3.2有MMR会话4、总结1、Multi-Range Read 纠错写本文的目的是对Multi-Range Read提出疑问,按照《MySQL技术内幕 InnoDB存储引擎 第2版.pdf》所写,发现MRR基本对于sql优化的作用微乎其微,基本没有,所以以后,再碰到类似问题时,也不需要关注这个点。2、Multi-Range Read 原理...
2022-04-06 14:47:35
100
原创 使用union all 替换 union实现sql优化案例
目录1使用union all 替换 union实现sql优化案例1.1问题背景1.2解决方案方案1 :用in来实现范围查询方案2 :用or条件来实现多值匹配方案3:使用union对结果集进行求并集,需要去重方案4:使用union all对结果集进行求并集,不需要去重1使用union all 替换 union实现sql优化案例1.1问题背景员工表:employees,数据大概300024条(30万),定义如下:CREATE TAB...
2022-04-06 14:46:04
257
原创 使用索引提示来优化sql案例
目录1、使用索引提示来优化sql案例1.1索引提示原理1.2问题描述1.3优化方案1.3.1重写sql1.3.2使用索引提示1.4总结1、使用索引提示来优化sql案例参考文档:force index mysql_mysql force index 优化案例1.1索引提示原理1.2问题描述有两张表,员工表:employees,员工工资表:salaries员工表:employees,数据大概300024...
2022-04-06 14:45:09
98
原创 对索引列使用范围查询结果较多时索引失效案例
目录1、对索引列使用范围查询结果较多时索引失效案例1.1理论基础1.2案例分析1、对索引列使用范围查询结果较多时索引失效案例1.1理论基础1.2案例分析查询薪资在(40000,60000)之间的数据记录,salaries表定义如下:CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `salary` int(11) NOT NULL, `from_date` date NOT NU...
2022-04-06 14:42:43
115
原创 使用非谓词导致索引失效案例
目录1、使用非谓词导致索引失效案例1.1背景1.2问题描述1.3总结1、使用非谓词导致索引失效案例1.1背景emp_title员工任职表,大概5万条数据,CREATE TABLE `emp_title` ( `emp_no` int(11) NOT NULL COMMENT ' 员工编号', `title` varchar(50) NOT NULL COMMENT '职务头衔', `from_date` date NOT NULL COMMENT...
2022-04-06 14:41:21
261
原创 left join导致使用了大表作为驱动表生成慢sql案例
参考文档:left join导致使用了大表作为驱动表生成慢sql原始超时SQL:SELECT v.breed,v.material,v.spec,v.factory,v.bale_num,v.warehouse_id,v.type,IFNULL(SUM(v.num),0) lock_num FROM ( SELECT t.*,SUM(i.num)num FROM (SELECT e.inventory_no,e.type,e.breed,e.mate
2022-04-06 14:40:07
159
flash 学习flash 学习flash 学习flash 学习flash 学习
2010-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人