Mysql(1:Mysql慢查询解决)

embedded/2024/10/11 7:31:59/

目录

说明

前言

Mysql前述

慢查询:

通常情况下出现的地方:

如何定位慢查询:

方案一:

方案二:

如何分析慢的原因:


说明


本文适合刚刚学习Java的初学者,也可以当成阿岩~的随手笔记.接下来就请道友们和我一起来学习吧!

如果本文有写的不对的地方,请道友们一定要说出来,避免影响到刚刚学习Java的道友们,也让阿岩~进行更新于改进,在这里谢谢各位道友了!

前言

Redis在上一篇中已经完结,今天开一个新坑:Mysql

Mysql前述

mysql是关系型数据库,在现在市场上大多数企业在用的热门数据库,所以还是很有必要去学习的.

今天在这里就不在去写Mysql的基础了,如果大家需要我后面可以单独出一篇.

今天主要写关于Mysql的慢查询

慢查询:

通常情况下出现的地方:

聚合查询 多表查询 表数据量过大查询 深度分页查询

表象: 页面加载过慢,接口压测响应时间过长

如何定位慢查询:

方案一:

开源工具进行监控:

调试工具: Arthas

运维工具:Prometheus Skywalking:可以检测出那个接口出现了慢查询问题

方案二:

MySql自带慢日志:一般在测试中开启,因为会耗用sql的性能

慢查询日志记录了所有执行时间超过指定参数的所有SQL语句的日志,可在配置中开启慢查询日志

配置完成后,可通过指令重新启动MySql服务器进行测试:(问题日志地址:/var/lib/mysql/localhost-slow.log)

如何分析慢的原因:

聚合查询和多表查询,表数据量过大查询可通过SQL执行计划找慢的原因:

可以采用将explain或者desc写在SQL语句前面,来查看如何执行的select语句的信息:

possible_key:当前sql可能会使用到的索引

<!--面试回答-->当前sql实际命中的索引(是否命中索引)

<!--面试回答-->key_len索引占用的大小(是否命中索引)

<!--面试回答是否出现了回表-->Extra额外的优化建议:

<!--面试回答是否由进一步优化的空间type-->这条sql的连接的类型,性能由好到差为:null  system   const   eq_ref    ref     range     index     all

system   查询系统中的表

const   根据主键查询

eq_ref    主键索引查询或唯一索引查询

ref     索引查询

range     范围查询

(下面两种要进行优化)

index     索引数查询

all   全盘扫描

                                                                                                                        ------阿岩~的随手笔记

预告:

在下一篇中我会将Mysql索引以笔记的形式进行发布,道友们一起来学习吧!


http://www.ppmy.cn/embedded/119213.html

相关文章

Glide基本用法及With方法源码解析

文章目录 引入优点 使用步骤导入依赖权限使用 其他用法占位符错误图片后备回调符圆角过渡动画大小调整gif缩略图 使用RequestOptions缓存机制设置缓存策略清理缓存 使用集成库OkHttpVolley with源码解析getRetrieverGlide.getinitializeGlide getRequestManagerRetriever Reque…

MongoDB简介

1、说到MongoDB就必须说下什么是NoSQL? NoSQL(NoSQL Not Only SQL)&#xff0c;意即反SQL运动&#xff0c;指的是非关系型的数据库&#xff0c;是一项全新的数据库革命性运动&#xff0c;早期就有人提出&#xff0c;发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系…

Docker搭建 RabbitMQ 最新版

Docker搭建 RabbitMQ 最新版 目录 镜像安装插件 镜像 这里需要下载带管理页面的镜像&#xff1a;docker pull rabbitmq:4-management 如果是 arm 芯片下载 docker pull arm64v8/rabbitmq:4-management 下载之后先运行镜像&#xff1a; docker run -d \--hostname rabbitmq…

通过 IPv6 进行远程 ADB 调试

通过 IPv6 进行远程 ADB 调试。与 IPv4 类似&#xff0c;ADB 支持使用 IP 地址进行无线调试&#xff0c;包括通过 IPv6 地址进行连接。以下是通过 IPv6 进行远程 ADB 调试的步骤&#xff1a; 1. 确保设备和主机支持 IPv6 首先确保你的 Android 设备和用于调试的电脑都连接到支…

项目计划软件如何助力企业策略规划和执行监控

项目管理软件助力任务、时间和协作管理&#xff0c;如ZohoProjects集成了任务管理、时间跟踪、协作工具等功能&#xff0c;提高性价比&#xff0c;适合不同规模团队。其简化流程、专业度高&#xff0c;成为企业提升效率的重要工具。 一、项目计划软件的由来 项目计划软件的历史…

Spring Cloud 工程搭建服务注册_服务发现

文章目录 Spring Cloud 工程搭建服务拆分示例数据库工程搭建构建父子工程创建父工程创建子项目完成两个接口 远程调用实现添加ProductInfo字段定义RestTemplate修改OrderService 服务注册/服务发现 - Eureka注册中心CAP理论常见的注册中心ZookeeperEurekaNacos Eureka 介绍搭建…

【linux 多进程并发】linux下使用常见命令,来解析进程家族体系脉络

0101 Linux进程 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录 0101 Li…

Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长

作者&#xff1a;Stella L (stellafootprint.network) 在 Web3 的快节奏世界里&#xff0c;社区互动是关键。而众多 Web3 社区之所以能够蓬勃发展&#xff0c;很大程度上得益于 Telegram 平台。正因如此&#xff0c;Footprint Analytics 精心打造了 Growthly —— 一款专为 Tel…