当数据库查询速度过慢时,从哪几个方面排查解决?
影响数据库查询速度的四个因素
风险分析
QPS(Queries Per Second):每秒查询率,是指一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS(TransactionsPerSecond):事务数/秒,它是软件测试结果的测量单位。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
效率低下的SQL语句会带来超高的QPS与TPS:
- 大量的并发:数据连接数被占满(max_connection默认100,一般把连接数设置得大一些)。并发量:同一时刻数据库服务器处理的请求数量。
- 超高的CPU使用率:CPU资源耗尽会出现宕机。
- 磁盘IO性能下降:大量消耗磁盘性能的计划任务。解决:更换磁盘设备、调整计划任务、做好磁盘维护。
网卡流量
如何避免无法连接数据库的情况:
- 减少从服务器的数量(从服务器会从主服务器复制日志)
- 进行分级缓存(避免前端大量缓存失效)
- 避免使用select * 进行查询
- 分离业务网络和服务器网络
磁盘IO
大表中记录行数巨大,单表超千万,表数据文件巨大,超过10个G。
大表带来的问题:
- 很难在短时间内过滤出需要的数据
- 修改表结构需要长时间的锁表,会造成长时间的主从延迟(‘480秒延迟’)
解决方法:
把一张大表分成多个小表。
服务器硬件
MySQL体系结构分三层:客户端、服务层、存储引擎。
MySQL是插件式的存储引擎,不同的存储引擎,只要符合mysql存储引擎的接口就可以使用,甚至可以开发自己的存储引擎。
MySQL的存储引擎是针对表的,不是针对库的。也就是说在一个数据库中可以使用不同的存储引擎,但是一般不建议这样做。
MySQL5.5及之后版本默认的是InnoDB存储引擎。
InnoDB存储引擎的特性
特性一:支持事务和外键
支持事务所需要的两个特殊日志类型:Redo Log 和Undo Log。
- Undo日志记录某数据被修改前的值,可以用来在事务失败时进行rollback。实现事务的持久性(已提交的事务)。
- Redo日志记录某数据块被修改后的值,可以用来恢复未写入data file的已成功事务更新的数据。未提交的事务,独立于表空间,需要随机访问,可以存储在高性能io设备上。
特性二:支持行级锁
行级锁可以最大程度地支持并发。
锁的主要作用是管理共享资源的并发访问,用于实现事务的隔离性。
性能优化顺序
SQL语句优化–>数据库结构优化–>文件系统优化,提高磁盘读写效率–>服务器硬件升级
当数据库查询速度过慢时,从哪几个方面排查解决?相关推荐
- mysql500万数据查询速度_是什么影响了数据库查询速度
一.什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS:Queries Per Second意思是"每秒查询率",是一台服务器每秒能够相应的查 ...
- server sql top速度变慢解决方案_SQL Server数据库查询速度慢的原因和解决方法
SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列 ...
- 数据库-SQL Server数据库查询速度慢(连接超时)原因及优化方法
SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列 ...
- mysql 查看表v空间自增涨_MySQL性能管理及架构设计(一):什么影响了数据库查询速度、什么影响了MySQL性能
一.什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS:Queries Per Second意思是"每秒查询率",是一台服务器每秒能够相应的查 ...
- MySQL性能管理及架构设计(一):什么影响了数据库查询速度、什么影响了MySQL性能...
一.什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS:Queries Per Second意思是"每秒查询率",是一台服务器每秒能够相应的查 ...
- 什么影响了数据库查询速度
1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS: QueriesPerSecond意思是"每秒查询率",是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器 ...
- sqlserver2014补丁速度慢_SQL Server数据库查询速度慢的原因和解决方法
问 SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计 ...
- SQL Server数据库查询速度慢的原因和解决方法
SQL Server数据库查询速度慢的原因和解决方法 参考文章: (1)SQL Server数据库查询速度慢的原因和解决方法 (2)https://www.cnblogs.com/MyChange/p ...
- 提高数据库查询速度的几个思路
提高数据库查询速度的几个思路 : 1.缓存,在持久层或持久层之上做缓存; 2.数据库表的大字段剥离,保证单条记录的数据量很小; 3.恰当地使用索引; 4.必要时建立多级索引; 5.分析Oracle ...
- MySQL 查询速度慢与性能差的原因与解决方法
MySQL 查询速度慢与性能差的原因与解决方法 更新时间:2019年09月26日 18:05:47 作者:Microtiger 随着网站数据量与访问量的增加,MySQL 查询速度慢与性能差的问题就日渐 ...
最新文章
- 36 多线程之线程池pool
- The RAII Programming Idiom
- 解决Spring Boot 整合Security后,所有接口提示Unauthorized、返回401
- 【笔记】spring的注解回顾,springboot-restful项目结构介绍 springboot-freemarker ⼯程配置详解
- rs232读取智能电表_三相电表怎么看度数 怎么计算总电量
- WPF 位置转化和动画
- 土豪聪要请客(题解)
- ASP.NET的七个内置对象
- PS把模糊的照片变清晰
- 设计一个O(n2)时间的算法, 找出由n个数组成的序列的最长单调递增子序列。
- android 心率传感器,安卓手表开发 心率篇 Android wear heart rate
- GUI入门实例:一文读懂基本的Matlab的GUI设计方法
- sparse coding
- 重磅!我组问卷调查结果公布
- 计算机页面偏黄怎么修改,电脑显示器偏黄怎么调
- jquery+ajax+ashx。ashx的使用方法
- DataStage 简介
- centos7-登录显示名称及登录欢迎界面设置
- 放在u盘根目录就可运行的efi shell_U盘PE启动安装Win7系统教程(微PE版)
- 答题交互功能深入研究