当前位置:首页 > 技术分析 > 正文内容

20个SQL查询优化技巧(如何优化sql查询效率)

ruisui883个月前 (02-03)技术分析16

以下值得关注的 20个SQL查询优化技术列表:

  • 1.在庞大的表(>1.000.000)行上创建索引
  • 2.使用 EXIST() 代替 COUNT() 查找表中的元素
  • 3.用 SELECT 字段代替 SELECT * 4.
  • 4.避免在 WHERE 子句中使用子查询 5.
  • 5.尽可能避免 SELECT DISTINCT
  • 6.使用 WHERE 子句而不是 HAVING 子句 7.
  • 7.使用 INNER JOIN(而不是 WHERE)创建连接
  • 8.使用 LIMIT 对查询结果进行抽样
  • 9.尽可能使用 UNION ALL 而不是 UNION
  • 10.使用 UNION where 代替 WHERE ... 或 ... 查询。
  • 11.在非高峰时段运行查询
  • 12.避免在连接查询中使用 OR
  • 14.选择 GROUP BY 而不是窗口函数
  • 15.使用派生表和临时表
  • 16.在加载批量数据前删除索引
  • 16.使用物化视图而不是视图
  • 17.避免使用 != 或 <>(不等于)操作符
  • 18.尽量减少子查询的数量
  • 19.当使用左/右连接可以获得相同输出时,尽量少使用 INNER 连接。
  • 20.为检索同一数据集,经常尝试使用临时数据源。


什么是查询优化?
它的主要功能是通过查找最佳执行计划来确定最有效率方式 来执行给定的 SQL 查询。

查询优化器的工作原理是将 SQL 查询作为输入并对其进行分析以确定如何最好地执行它。

  • 第一步是解析 SQL 查询并创建语法树。然后优化器分析语法树以确定如何运行查询。
  • 接下来,优化器生成 替代性执行计划,这是执行同一查询的不同方式。每个执行计划指定访问表的顺序、连接方法以及任何过滤或排序操作。
  • 然后,优化器根据磁盘读取次数和执行查询所需的 CPU 时间为每个执行计划分配一个 成本。
  • 最后,优化器以最低的成本作为查询的最优执行计划。然后使用该计划来执行查询。

20个SQL查询优化技巧 - 极道

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1043.html

标签: 查询优化
分享给朋友:

“20个SQL查询优化技巧(如何优化sql查询效率)” 的相关文章

USB电池充电基础:应急指南

USB为便携设备供电与其串行通信功能一样,已经成为一种标准应用。如今,USB 供电已经扩展到电池充电、交流适配器及其它供电形式的应用。应用的普及带来的一个显著效果是便携设备的充电和供电可以互换插头和适配器。因此,相对于过去每种装置都采用专用适配器的架构相比,目前的解决方案允许采用多种电源进行充电。毋...

Vue进阶(幺叁捌):vue路由传参的几种基本方式

1、动态路由(页面刷新数据不丢失)methods:{ insurance(id) { //直接调用$router.push 实现携带参数的跳转 this.$router.push({ path: `/particulars/${id}`,...

Vue学习笔记之动态路由的参数传递应用及技巧

路由的参数传递:①通过params的类型· 配置路由格式:/router/:id· 传递的方式:在path后面跟上对应的值· 传递后形成的路径:/router/list,/router/profile这个就是前两篇中提到的"动态路由"中有应用过这个方法:②通过query的类型(对象方...

vue打开新窗口并且实现传参,有图有真相

我要实现的功能是打开一个新窗口用来展示新页面,而且需要传参数,并且参数不能显示在地址栏里面,而且当我刷新页面的时候,传过来的参数不能丢失,要一直存在,除非我手动关闭这个新窗口,即浏览器的标签页。通过面向百度编程,发现网上的根本达不到这个效果,而且还都是坑,明明实现不了,还若有其事的写出来,于是我在标...

微信外H5跳转小程序——组件(vue项目)

场景有个H5(vue项目),需要实现点击商品item跳转到小程序,微信内和微信外都要支持,这里我们只介绍一下H5在微信外的跳转。如图所示,红框内是一个商品,就是点击这里,要跳转小程序:配置微信小程序云开发(云函数)1、开通云开发然后选择免费额度2、云开发权限设置找到权限设置,把这里的「未登录用户访问...

在vue项目中封装WebSockets请求

在Vue项目中封装WebSocket请求包括以下步骤:1. 安装WebSocket库:首先,导入WebSocket库,例如`vue-native-websocket`或`socket.io-client`。根据项目需求选择适当的库,并根据官方文档进行安装和配置。2. 创建WebSocket服务:在V...