MySQL实战:问题排查与监控

在这里插入图片描述

常见问题

有更合适的索引不走,怎么办?

MySQL在选取索引时,会参考索引的基数,基数是MySQL估算的,反映这个字段有多少种取值,估算的策略为选取几个页算出取值的平均值,再乘以页数,即为基数

查看索引基数

show index from table_name

使用force index可以强制使用索引

重新统计索引信息,会重新计算索引的基数

analyze table

count 语句慢,如何解决?

count(非索引字段):无法使用覆盖索引,最慢
count(索引字段):可以使用覆盖索引但依然要取出数据判空
count(1):不需要取出数据,但需要判断1是否为null
count(*):经过专门优化,不需要判空,理论最快

获取不到数据库连接

事务提交慢导致获取不到数据库连接

查看超时释放

show variables where variable_name like '%timeout'

查看线程

-- 查看当前数据库运行的所有线程
show processlist
-- show processlist只能列出前100条,想看所有使用如下命令
show full processlist

查看最大连接数

show variables like '%max_connections%'

修改最大连接数

set GLOBAL max_connections = 200;

读写分离导致读不到最新的数据

应用层做了读写分离后,有可能会读取到旧数据,此时可以强制从主库查询数据。

说一个由于读写分离导致的生产问题,我们在service层有一个切面,根据方法名的前缀来决定走主库还是从库,有个方法名是以get开头,切面就将数据源设置为从库,结果里面有写入的操作,到了生产环境一直报错。为什么我们在测试环境没遇到这个问题?因为我们在测试环境主库和从库配置的是同一个数据源

数据库服务器负载过大

CPU使用率不断升高,QPS不断降低

避免大事务

一般要在访问量比较低的时候执行批量修改数据

我们原来在生产遇到一个挺有意思的事情,批量更改数据,发出了大量的binlog,然后另外一个应用监听binlog同步数据,产生的大量binlog导致数据同步很慢,影响了正常的业务流程

数据修改尽量放在事务后部,降低锁时间

alter table 之前,查看是否有长事务还未提交

查看长事务:information_schema库innodb_trx表
查看锁:information_schema库innodb_locks表
查看阻塞的事务:information_schema库innodb_lock_waits表

监控指标

性能类指标

名称说明
QPS数据库每秒处理的请求数量
TPS数据库每秒处理的事务数量
并发数数据库实例当前并行处理的会话数量
连接数连接到数据库会话的数量
缓存命中率Innodb的缓存命中率

功能类指标

名称说明
可用性数据库是否正常对外提供服务
阻塞当前是否有阻塞的会话
死锁当前事务是否产生了死锁
慢查询实时慢查询监控
主从延迟数据库主从延迟时间
主从状态数据库主从复制链路是否正常

QPS

各种请求的数量

show global status like 'com%'

各种请求的和

show global status like 'queries'

qps = (queries2- queries1) / 时间间隔

TPS

show global status where variable_name in ('con_insert', 'com_delete', 'com_update')

tc = com_insert + com_delete + com_update

tps = (tc2 - tc1) / (time2 - time1)

数据库并发数

show global status like 'threads_running'

数据库连接数

show global status like 'threads_connected'

报警阈值:threads_connected / max_connections > 0.8

Innodb缓存命中率

show global status like 'innodb_buffer_pool_read%'

(Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / (Innodb_buffer_pool_read_requests) *100%

Innodb_buffer_pool_read_requests:从缓存池中读取的次数
Innodb_buffer_pool_reads:从物理磁盘读取的次数

数据库可用性

周期性的连接数据库并执行select @@version

监控慢查询

通过慢查询日志监控

死锁

查看最近一次死锁信息

SHOW ENGINE INNODB STATUS

使用pt-deadlock-logger工具

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI新工具(20240312) Midjourney官方发布角色一致性功能;免费且开源的简历制作工具;精确克隆语调、控制声音风格

1: Midjourney角色一致性功能 使人物画像在多方面高度一致成为可能。 Midjourney的角色一致性功能的使用方法如下: ⭐在你的输入指令后面加上 --cref URL,其中URL是你选择的角色图像的链接。 ⭐你可以通过 --cw 参数来调整参照的强度,范围…

Selenium控制已运行的Edge和Chrome浏览器(详细启动步骤和bug记录)

文章目录 前期准备1. 浏览器开启远程控制指令(1)Edge(2)Chrome 2. 执行python代码(1)先启动浏览器后执行代码(2)通过代码启动浏览器 3. 爬取效果3. 完整代码共享3.1 包含Excel部分的…

旅游景区公共广播 园区广播 公路服务区广播

旅游景区公共广播 园区广播 公路服务区广播 旅游景区公共广播 旅游景区公共广播(又称背景音乐)简称BGM,它的主要作用是掩盖噪声并创造一种轻松和谐的气氛,是一种创造轻松愉快环境气氛的音乐。掩盖环境噪声,创造与旅游景区相适应的气氛&#…

ubuntu20.04上获取Livox Avia雷达点云数据

若拿到手的Livox Avia激光雷达不知道它的ip信息,可以在官网上LiDAR Sensors - Livox下载上位机软件Livox Viewer,查看IP,下载window版本就可以。雷达通过网线连上电脑后,该软件就可以自动识别出来。按照下图步骤,就可以…

自动化运维工具---------------ANSIBLE

一、Ansible 发展史及功能 作者:Michael DeHaan( Cobbler pxe kikstar 与 Func 作者)ansible 的名称来自科幻小说《安德的游戏》中跨越时空的即时通信工具,使用它可以在相距数光年的距离,远程实时控制前线的舰队战斗2…

遥感云计算的一个拐点

GeoForge,一个值得关注的遥感大数据应用 简介 GeoForge是由Ageospatial公司开发的一个基于大语言模型(GeoLLMs)的地理空间分析平台。GeoForg的目的是使每个人都可以轻松进行地图绘制和地理空间分析,无论您是外行还是专家。 Geo for ChatGPT 作者团队已…

Extropic.AI:终结GPU/TPU的热力学未来Chip?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

一台GTX1080显卡的怪兽,我可不能错过这个机会!

标题:我花了30块钱买了一台电脑主机。 这个配置能赚钱吗? 1. 收购惊喜 那是一个阳光明媚的下午,我在水管修理店里闲逛。 突然,一位老顾客手里拿着一台旧电脑主机匆匆走了进来。 他说:“小王,你能帮我看看…

芯片电源设计原则

一、芯片供电 每路电源都要求在一定范围内。每路电源都有允许的输入电压范围。可能需求多路电源;可能分模块供给。 不同模块对电源质量的要求可能不同。有些模块可能较为敏感,抗扰度低。有些模块可能容易干扰其他模块。 电源分配网络存在一定电感&…

07-java基础-锁之AQSReentrantLockBlockingQueueCountDownLatchSemapho

文章目录 0:AQS简介-常见面试题AQS具备特性state表示资源的可用状态AQS定义两种资源共享方式AQS定义两种队列自定义同步器实现时主要实现以下几种方法:同步等待队列条件等待队列 1:AQS应用之ReentrantLockReentrantLock如何实现synchronized不…

string的使用

前言 我们前面已经介绍了C的基本知识,本期开始我们将进入C的第二部分,也是非常重要的一个部分!他就是STL!本期我们来先介绍string及其使用! 本期内容介绍 STL介绍 为什么要学习string? string的常用接口介绍 一、ST…

【Twinmotion】Twinmotion导入UE5

步骤 1. 在虚幻商城中安装“Datasmith Twinmotion导入器插件” 安装“面向虚幻引擎的Twinmotion内容” 2. 打开虚幻引擎,在插件中搜索“twinmotion”,勾选如下两个插件,然后重启虚幻引擎 3. 打开Twinmotion,随便添加一个物体 导出…

NAND和NOR Flash 完全学习笔记

本文要点: NAND FLASH与NOR FLASH 的技术对比;最详细的存储单元对比详解;NAND FLASH与NOR FLASH 的最新市场份额及应用;NAND FLASH与NOR FLASH 的基础原理分析。 目前,NOR FLASH和NAND FLASH是市场上主要的非易失性闪…

李彦宏:在中文上文心大模型4.0已经超过了GPT-4!如何优雅地反驳

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

<逻辑回归算法(Logistic regression)>——《机器学习算法初识》

目录 一、 逻辑回归介绍 1 逻辑回归的应用场景 2 逻辑回归的原理 2.1 输入 2.2 激活函数 3 损失以及优化 3.1 损失 3.2 优化 4 小结 二、逻辑回归api介绍 实现过程: 三、分类评估方法 1.分类评估方法 1.1 精确率与召回率 1.1.1 混淆矩阵 1.1.2 精确…

【五、接口自动化测试】5分钟掌握python + requests接口测试

你好啊!我是山茶,一个持续探索AI 测试的程序员! 在做接口测试时,在python中内置了HTTP库 urllib,可以用于发送http请求。基于urllib二次封装的三方库Requests,相较于urllib更佳简介易用。所以,…

LED基础知识分享(一)

大家好,我是砖一。 今天给大家分享一下,LED的基础知识,有照明行业,或者对LED感兴趣的朋友,可以学习一下,希望对你有用~ 一,什么是LED (Light Emitting Diode)? 1,LED是一种发出某…

MathType7最新软件产品秘钥2024中文版

MathType 7是一款功能强大的数学公式编辑器,专为教育工作者、学生、科研人员以及任何需要处理数学公式的人群设计。以下是对MathType 7的详细介绍: 一、功能特点: 广泛的符号和模板支持:MathType 7支持各种数学符号、公式、方程…

Centos7 安装postgresql14后无法连接数据库

1、数据库服务器允许外部访问5432端口。 2、postgresql.conf 3、pg_hba.conf a、制定某个IP(192.168.0.107)访问 b、指定ip段访问 允许10.1.1.0~10.1.1.255网段登录数据库 host all all 10.1.1.0/24 trust c、指定全网访问 host a…

mysql5.6---windows和linux安装教程和忘记密码怎么办

一、windows安装 1.完成解压 解压完成之后将其放到你喜欢的地址当中去,这里我默认放在了D盘,这是我的根目录 2.配置环境变量 我的电脑->属性->高级->环境变量->系统变量 选择PATH,在其后面添加: (注意自己的安装地址) D:\mysql-5.6.49…