mysql 性能调优概述

news2024/9/21 15:39:01

1.查看执行计划

id:操作表顺序。

id不同,执行顺序从大到小,id相同,执行顺序从上到下。

select_type:select类型

Simple:简单查询,不包含子查询或union

Primary:最外层的查询

Subquery:子查询

Union:union之后的查询

Dependent subquery:依赖于外查询的子查询

table:操作的表名

type:找到对应行的扫描方式

ALL:全表扫描

index:遍历所有树

range:对索引树进行范围扫描

ref:使用非唯一索引或唯一索引前缀进行查询

eq_ref:多表连接中,使用主键或唯一索引进行查询

const/system:根据主键或唯一索引进行查询

NULL:不需要访问表结构或索引直接得到结果

key:实际使用到的索引

ref:使用哪些列或常量来查找数据

rows:扫描行的数量

Extra:其它关键信息

Using filesort:在没有索引的列上进行排序

Using index:不需要回表

Using where:部分条件不在索引中

Using temporary:使用临时表来存储结果集,常用于分组

2.聚簇索引与非聚簇索引

mysql中索引的分类:
聚簇索引:索引的数据和基表的数据放在一块,叶子节点存放的是完整的行数据,类似与Oracle的IOT表。
非聚簇索引:索引的数据和基表的数据分开存放

示例:

建议使用聚簇索引访问表,且不回表扫描:

如果条件访问的是a,条件是b(覆盖索引),但使用的是非聚簇索引:

这种方式其实比前一种代价要大

如果是select *,则使用非聚簇索引扫描,且回表扫描:

3.多个等值条件查询如何调优:

sql调优方面之前写过一篇有实例可以参考,虽然是PG但是sql调优都是通用的。

PG sql调优案例学习_pg库的多表联查如何优化-CSDN博客

另外建复合索引需要关注前缀性和可选性:

例如:

select   ......  where A=100 and B =100;

select   ......  where A=100 and C = 100;

则建复合索引的时候应该A放在前面 例如A,B 

如果建立的是B,A,C,那么第一条会走索引,第二条不会走索引。

即 复合索引的第一个索引字段,必须出现在where条件当中。

4.like语句条件查询如何进行调优

非前缀模糊会使用索引: like   ’dba%‘

前缀模糊无法使用索引: like   ’%dba‘
 

5.多表连接查询调优

mysql 连接顺序只有nl和hash join 不支持merge 。

首先还是老规矩了,大表驱动小表。

之前PG有写过,sql调优是通用的。

PG sql调优案例学习_pg库的多表联查如何优化-CSDN博客

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

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

相关文章

c->c++(三):stl

本文主要探讨c的stl相关知识:模版,容器,泛型算法,萃取特化,智能指针等。 模版 模板typename和class均可定义 模板参数可是类型,还可是值 模板编译根据调用实参类型推导参数类型 编译器用值的类型…

个人做量化交易一定不靠谱?

在某乎上的『量化』话题下,有一类关于个人量化交易者的问题很热门,比如『个人做量化交易靠不靠谱吗?』、『个人做量化交易到底可不可行?』、『个人做量化没啥优势,不如买量化基金?』。 关注度高的&#xff…

2025年穿戴甲全球市场预测与分析

传统美甲一直是大美业里的为数不多的“稳定”型项目,无论是产品、技术还是市场规模。直到2020年开始,穿戴甲的出现,打破了这一平衡生态,究其原因还是因为:创新!通常我们在判断一个创新型产品或者服务的出现…

远程访问mysql数据库的正确打开方式

为了安全,mysql数据库默认只能本机登录,但是在有些时候,我们会有远程登录mysql数据库的需求,这时候应该怎么办呢? 远程访问mysql数据,需要两个条件: 首先需要mysql服务器将服务绑定到0.0.0.0…

LazyLLM:长上下文场景下提高LLM推理效率

LazyLLM旨在优化大型语言模型(LLM)在处理长文本语境下的推理效率。传统上,LLM的推理过程分为预填充和解码两个阶段,其中预填充阶段负责计算并存储输入提示的所有token的键值(KV)缓存,这一步骤在…

转转上门履约服务拆分库表迁移实践

文章目录 1 背景2 数据迁移方案2.1 方案一:双写新旧库2.2 方案二:灰度开关切换新旧库 3 迁移细节3.1 业务代码改造3.2 数据同步3.3 数据一致性校验 4 总结5 参考资料 1 背景 随着业务不断发展,一个服务中部分功能模块适合沉淀下来作为通用的…

OverlayFS 文件系统介绍

引言 OverlayFS(Overlay Filesystem)是 Linux 内核中的一种联合文件系统(Union Filesystem),它通过叠加多个目录形成一个单一的文件系统视图。作为 Docker 的默认存储驱动之一,OverlayFS 在提高性能和简化容…

Python 装饰器简单使用

在Python编程中,装饰器(Decorators)是一种强大且优雅的功能,它允许我们在不修改原有函数代码的情况下,给函数增加新的功能。装饰器本质上是一个函数,它接收一个函数作为参数并返回一个新的函数,…

【医疗大数据】健康分析法应用于商业领域的文献回顾

这几天在看医疗大数据的文章,找到了这篇关于健康分析学在商业领域的应用,概括性地探讨了通过医疗大数据来解决医疗领域的问题。 Health analytics in business research: a literature review 1、研究背景: 本文探讨了健康分析学&#xff0…

吴恩达老师机器学习-ex3

使用逻辑回归 导入库,因为这次的数据是mat文件,需要使用scipy库中的loadmat进行读取数据。 通过对数据类型的分析,发现是字典类型,查看该字典的键,可以发现又X,y等关键字。 import numpy as np import m…

Python none和0区别是什么

None是Python中的一个关键字,None本身也是个一个数据类型,而这个数据类型就是None,它和0、空字符串以及false均不一样,这些都只是对象,而None也是一个类。 给个bool测试: val None if val:print "No…

【应急响应】Linux权限维持 -隐藏权限

前言 不知攻焉知守,学会排查就要先学习如何攻击。 隐藏文件 Linux下创建一个隐藏文件:touch .test.txt 查看Linux下的隐藏文件需要用到命令:ls -al 隐藏文件时间戳 touch -r .docker hello.php 创建的hello.php文件会和.docker创建文件的时间…

printf颜色格式化使用

前言 本文介绍了如何使用C语言标准函数进行字符的有色打印,以及实现一些特殊的输出。 一、一般使用 在C语言中,printf常用来进行标准化格式输出,其作用是将字符串打印到屏幕上面,其中可以使用占位符、转义符来对字符串进行格式…

[玄机]流量特征分析-常见攻击事件 tomcat

题目网址【玄机】:https://xj.edisec.net/ Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP) 技术,提供了一个运行这些应用程序的Web服务器环境。Tomcat由Apache软件基金会的Jakarta项目开发,是…

使用思科模拟电子邮件实验

实验十 电子邮件实验 文章目录 实验十 电子邮件实验1.实验目的2.实验流程3.实验步骤 1.实验目的 1)理解电子邮件的含义 2)理解邮件系统的工作过程 3)掌握简单的邮件服务器的配置 2.实验流程 开始 → 布置拓扑 → 配置路由及IP地址 → 配置…

JAVA—面向对象编程基础

面向对象是java编程的套路。更符合人类思维习惯,编程更直观。面向对象有三大特征:封装,继承,多态。 目录 1.理解面向对象 2.对象在计算机中的执行原理 3.类和对象的一些注意事项 4.类与对象的一些语法知识 (1&am…

小阿轩yx- KVM 高级功能部署

小阿轩yx- KVM 高级功能部署 案例分析 案例概述 企业内部为了使服务器资源达到最大化利用会进行 KVM 虚拟化每台服务器部署多台 KVM 虚拟机。KVM 虚拟机数量不断增多个别服务器会出现资源过载现象,就需要对部分 KVM 虚拟机迁移针对可停机的 KVM 虚拟机可使用静态…

为你的世界,开一扇任意门 (中篇)

传送门 《为你的世界,开一扇任意门(上篇)》 一、蓬门今始为君开 在上篇,为各位朋友展示了,在【我的电脑】中添加自己的任意门后的效果。 本篇直接上干货,手把手教大家实操(dll插件和自动化注册…

PostgreSQL如何入门学习?

在各种数据岗招聘中,SQL几乎成为了必备技能。有公司的地方就会有数据,有数据的地方就会有数据库,有数据库的地方就会有SQL。 SQL在数据分析中到底有多重要?这么说吧,除了Excel外,SQL是数据工作最常接触的到…

Java--接口和内部类

目录 接口接口的使用接口的特性多继承问题对象类型进行比较深拷贝和浅拷贝浅拷贝深拷贝 接口和抽象类区别 Object类内部类实例内部类静态内部类局部内部类匿名内部类 接口 接口是一种引用数据类型,语法和抽象类类似,只不过需要把abstract换成interface 接…