sql优化思路

 sql的优化经验


f36154b05e254b229329d19ea8e1f36b.png

这里解释一下SQL语句的优化的原理

1.指明字段名称,可以尽量使用覆盖索引,避免回表查询,因此可以提高效率

2.字面意思,无需过多赘述。索引就是为了提高查询效率的。

3.图中两条sql直接可以使用union all 或者 union连接。使用union all 的话,就会把两条sql所有符合条件的查询结果直接合并。使用union的话,就会多一步过滤,过滤掉二者的重复项。效率相对较低。

4.避免在where子句使用对字段进行表达式操作,这也是因为可能会造成索引失效。如:1.7中索引失效的第三种情况

5.如下图,这里有两个循环。循环三次的可以看作小表,循环1000次的看作大表。

小表放外面,MySql只需要连接三次数据库,然后在里面执行1000次操作。

而把大表放外面,就相当于要连接1000次数据库!每次执行三次操作。 

而使用内连接,就会优先把小表放外面,大表放里面。而左右连接并不会改变顺序(因为编写sql的时候就已经确定了两个表的位置了)。因此优先使用内连接。

6a0e994a8e9949318bb29485e53f39c4.png

1eff076b6a42492b95371a8c7bb6f61b.png

当有写操作进来的时候,就会走Master数据库,进行写操作,然后Master数据库再把数据同步到Slave数据库。

当有读操作进来的时候,就直接走Slave进行查询。

从而实现读写分离。

01d9093529314a91bcd92f0b101a7820.png

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

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

相关文章

[Kotlin]创建一个私有包并使用

1.创建Kotlin项目 创建项目: 在Android Studio或其他IDE中选择“Create New Project”。选择Kotlin和Gradle作为项目类型和构建系统。指定项目名称和位置,完成设置。 添加依赖: 如果你的库需要额外的依赖,可以在 build.gradle (Module: app…

ReactFlow的ReactFlow实例事件传参undefined处理状态切换

1.问题 ReactFlow的ReactFlow实例有些事件我们在不同的状态下并不需要,而且有时候传参会出现其它渲染效果,比如只读状态下我们不想要拖拉拽onEdgesChange连线重连或删除的功能。 2.思路 事件名称类型默认值onEdgesChange(changes: EdgeChange[]) >…

工厂自动化升级改造(2)-RS485与Modbus通信协议

在工业控制、电力通信、智能仪表等领域,数据交换通常依赖于串口通信。最初,RS232接口是主流选择,然而,由于工业现场的复杂性,各种电气设备产生的电磁干扰可能导致信号传输错误。 RS232和RS485是两种不同的串行通信协议,它们在电气特性、传输距离和拓扑结构等方面有所不同…

微信小程序(Taro)获取经纬度并转化为具体城市

1、获取经纬度 申请权限,想要使用微信小程序获取经纬度的方法是要申请该方面的权限。 获取经纬度的方法有很多选择其中一个使用就好。 我使用的是Taro.getFuzzyLocation() 在app.config.js中需要添加设置 requiredPrivateInfos: ["getFuzzyLocat…

VS调试技巧

1. 什么是bug bug本意是“昆⾍”或“⾍⼦”,现在⼀般是指在电脑系统或程序中,隐藏着的⼀些未被发现的缺陷或 问题,简称程序漏洞。 “Bug” 的创始⼈格蕾丝赫柏(Grace Murray Hopper),她是⼀位为美国海军⼯…

SpringBoot中这样用ObjectMapper

每次new一个单例化个性化配置小结 你要说他有问题吧,确实能正常执行;可你要说没问题吧,在追求性能的同学眼里,这属实算是十恶不赦的代码了。 首先,让我们用JMH对这段代码做一个基准测试,让大家对其性能有个…

jenkins部署服务到windows系统服务器

1、安装openSSH windows默认不支持ssh协议,需要下载安装,主要适用于jenkins传输文件已经执行命令使用 点击查看下载openSSH 2、项目配置 这里简单说说怎么配置,主要解决点就是ssh执行cmd或shell命令时不能开启新窗口导致应用部署失败或者断…

PLC学习笔记

PLC学习笔记 前言一、一些基操知识二、GX works2编程2.1 位逻辑1.2 中间寄存器1.3 PLC的扫描方式 总结 前言 我这个人真的是太渴望知识了~ 一、一些基操知识 一般X表示输入,Y表示输出。一般八个为一组X0~X7M表示中间寄存器,M0~M7时间T、计数C 二、GX …

Spring Data JPA自定义Id生成策略、复合主键配置、Auditing使用

前言 在Spring Data JPA系列的第一篇文章 SpringBoot集成JPA及基本使用-CSDN博客 中讲解了实体类的Id生成策略可以通过GeneratedValue注解进行配置,该注解的strategy为GenerationType类型,GenerationType为枚举类,支持四种Id的生成策略&…

63-HDMI转VGA电路设计

视频链接 HDMI转VGA电路设计01_哔哩哔哩_bilibili HDMI转VGA电路设计 HDMI电路设计(参考第13课) VGA电路设计(参考第15课) DP转VGA电路设计(参考第75课) 1、HDMI转VGA转换器 2、HDMI转VGA简介 1、解…

Dask简介

目录 一、概述 二、编程模型 2.1 High-Level Collection 2.2 Low level Interface 三、调度框架 3.1 任务图 3.2 调度 3.3 优化 3.4 动态任务图 一、概述 Dask是一个灵活的Python并行计算库。 Dask由两部分组成: 为计算优化的动态任务调度:和A…

静态分配IP,解决本地连接不上Linux虚拟机的问题

在Window环境下,使用远程终端工具连接不了VMware搭建的Linux虚拟机(CentOS 7),并且在命令行ping不通该Linux虚拟机的IP地址。下面通过配置网关解决本地与Linux虚拟机连接问题: 1 查看虚拟机网关地址 在VMware虚拟机上…