【Mysql】【DB】【sql】提高数据库搜索性能的经验

【背景】

项目需要,经常给金融机构做数字化项目,涉及到各类复杂的查询,今天就我认为最重要的影响性能的数据库查询经验以及解决方案做一个分享。

【常见查询设计中最影响性能的方面】

  1. 最影响性能的是联表,且联表方面,通过造索引等方法得到的性能改善并不显著。
  2. 联表在存在大量MasterData的情况下最影响性能,比如每次查询都要将当月的交易信息与用户信息表进行关联,而用户信息表作为MasterData,为了反应历史状况每个月都有上传,因此每次联表等于和存量到如今的历史用户信息表进行联表查询,这样的大数据量联表必然导致查询缓慢。

【解决办法】

  1. 从设计上进行改进,上传时就可以不积累每个月的全量用户信息,而是采取根据关键字insert duplicate update的方式,上传时,如果关键字不存在就新增记录,如果已重复就更新记录,这样master data的数据量就不会有随着事件的巨量增长。
  2. 从查询语句上进行改进,每次联表前,先用子查询缩小一波master data的数量,然后再进行查询即可。

【技巧总结】

  1. 联表状况下,外部的Where尽可能往子查询放,原来不是子查询的大表变子查询。
  2. 联表状况下,所有on的一边是常量的,都放进子查询的where。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/178147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SA与NSA网络架构的区别

SA与NSA网络架构的区别 1. 三大运营商网络制式:2. 5G组网方式及业务特性3. NSA-3系列4. NSA—4系列5. NSA-7系列6. 5G SA网络架构7. 运营商策略 1. 三大运营商网络制式: 联通:3G(WCDMA)\4G(FDD-LTE/TD-LTE)\5G(SA/NSA)移动:2G(GS…

【备忘录】快速回忆ElasticSearch的CRUD

导引——第一条ElasticSearch语句 测试分词器 POST /_analyze {"text":"黑马程序员学习java太棒了","analyzer": "ik_smart" }概念 语法规则 HTTP_METHOD /index/_action/IDHTTP_METHOD 是 HTTP 请求的方法,常见的包括…

Rocket mq namesrv源码分析

NameServer 作为注册中心,提供路由注册、路由踢出、路由发现功能,舍弃强一致,保证高可用,集群中各个节点不会实时通讯,其中一个节点下线之后,会提供另外一个节点保证路由功能。 启动入口 org.apache.rock…

【带头学C++】----- 八、C++面向对象编程 ---- 8.5 struct结构体类型增强使用说明

目录 8.5 struct结构体类型增强使用说明 8.5.1 C结构体可以定义成员函数 8.5.2 c中定义结构体变量可以不加struct关键字 8.6 bool布尔类型关键字 8.5 struct结构体类型增强使用说明 第六章对结构体的使用、内存对齐以及数组、深拷贝和浅拷贝进行了一个详细的说明&#xff0c…

【数据结构实验】排序(二)希尔排序算法的详细介绍与性能分析

文章目录 1. 引言2. 希尔排序算法原理2.1 示例说明2.2 时间复杂性分析 3. 实验内容3.1 实验题目(一)输入要求(二)输出要求 3.2 算法实现3.3 代码解析3.4 实验结果 4. 实验结论 1. 引言 排序算法在计算机科学中扮演着至关重要的角色…

Leetcode211. 添加与搜索单词 - 数据结构设计

Every day a Leetcode 题目来源:211. 添加与搜索单词 - 数据结构设计 解法1:字典树 字典树(前缀树)是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。前缀树可以用 O(∣S∣) 的时间复杂度完成如下操作…

基于单片机温湿度光照自动窗帘系统设计

**单片机设计介绍, 基于单片机温湿度光照自动窗帘系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的温湿度光照自动窗帘系统是一种智能家居系统,通过使用单片机作为控制核心&#xff0c…

【IQR与MAD】原理,一文带你玩转箱型图含详细解释与代码

IQR方法 基于四分位数:使用数据的第一四分位数(25%)和第三四分位数(75%)来计算。 对称:相对于中位数对称地考虑上下界。 受极端值影响:如果数据中包含极端值,IQR可能会被拉得很大&a…

CMA认证是什么?CMA软件测试报告如何获取?

资格证书在各行各业都是一种专业性象征,如第三方检测机构的CMA认证,在相应的检测报告上加盖CMA章可获得国家以及行业认可,还是享受税收优惠的有力证明材料。 一、CMA认证是什么?   CMA是中国计量认证的简称,由省级以上人民政府…

EFCore乐观并发

在 Entity Framework Core 中,乐观并发是一种处理并发访问的方式,它允许多个用户同时访问和修改相同的数据,而不会发生冲突。乐观并发的实现通常涉及使用版本控制字段来检测数据更改,并在保存更改时检查这些字段是否与预期值匹配。…

顺序栈的基本操作(超详细)

目录 前言 一、顺序栈的定义 二、顺序栈的c语言结构描述表示 三、顺序栈中基本操作的实现 3.1顺序栈的初始化 3.2判断顺序栈是否为空 3.3求顺序栈的长度 3.4清空顺序栈 3.5销毁顺序栈 3.6顺序栈的入栈 3.7顺序栈的出栈 3.8求栈顶元素 3.9遍历顺序栈 四、顺序栈的…

JDK21发布了!面试官:来,谈下jdk21的新特性!

1.前言 JDK21 计划23年9月19日正式发布,尽管一直以来都是“版随意出,换 8 算我输”,但这么多年这么多版本的折腾,若是之前的 LTS 版本JDK17你还觉得不错,那 JDK21还是有必要关注一下,因为会有一批重要更新…

华清远见嵌入式学习——C++——作业一

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;int main() {string str;cout << "请输入一个字符串&#xff1a;" << endl;getline(cin,str);int dx0,xx0,sz0,kg0,qt0;int len str.size() 1;for(int i0;i<l…

HarmonyOS 传感器开发指南

HarmonyOS 系统传感器是应用访问底层硬件传感器的一种设备抽象概念。开发者根据传感器提供的Sensor接口&#xff0c;可以查询设备上的传感器&#xff0c;订阅传感器数据&#xff0c;并根据传感器数据定制相应的算法开发各类应用&#xff0c;比如指南针、运动健康、游戏等。 运作…

Centos 如何判断分区是mbr还是gpt格式

1 介绍 MBR 自20世纪80年代初以来的标准分区表格式每个驱动器最多支持四个主分区最多可以划分2TB的磁盘 GPT GPT是MBR分区表格式的后续每个驱动器最多支持128个分区可以将一个磁盘分区到最大到18艾字节 对小于2TB的磁盘使用MBR对大于2TB的磁盘使用GTP 2 查询方式 2.1 fdis…

校园虚拟化部署与横向扩展统一存储

项目背景 这所隶属教育部直属重点大学&#xff0c;学校设有11个学科体系&#xff0c;现有本硕博学生共29000余人&#xff0c;为积极响应“中国教育现代化2023战略部署”&#xff0c;校方制定教育信息化2.0发展目标&#xff0c;通过平台融合&#xff0c;数据驱动、技术赋能等措…

Linux常见指令基础知识

目录 初始Linux操作系统 Linux背景&#xff1a; 开源 &#xff1a; 发行版本&#xff1a; ​编辑 OS概念&#xff0c;定位&#xff1a; 使用 XShell 远程登录 Linux Linux相关知识 文件是什么&#xff1f; 路径分隔符 &#xff08;.&#xff09; 和 &#xff08;. .&…

Docker Swarm总结+Jenkins安装配置与集成(5/5)

博主介绍&#xff1a;Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 &#x1f345;文末获取源码下载地址&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb;…

【HarmonyOS】ArkUI状态管理:组件内状态、装饰器、高级用法与最佳实战【鸿蒙专栏-08】

文章目录 ArkUI状态管理机制详解1. 概述2. 基本概念2.1 状态变量2.2 数据传递和同步2.3 初始化方法3. 装饰器总览3.1 管理组件拥有的状态3.2 管理应用拥有的状态3.3 其他状态管理功能4. @State装饰器详解4.1 使用规则说明4.2 传递/访问规则说明4.3 观察变化和行为表现5. 使用场…

反射、枚举以及lambda表达式

1. 反射 1.1 定义 java的.class文件在运行时会被编译为一个Class对象&#xff0c;既然是对象&#xff0c;那么我们就可以通过一定的方式取到这个对象&#xff0c;然后对于这个对象进行一系列操作&#xff08;改变原本类的属性、方法&#xff09;。 这个操作就是反射&#xf…