iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL 语句执行很慢的原因
  • 288
分享到

SQL 语句执行很慢的原因

SQL语句执行很慢的原因 2019-02-04 08:02:09 288人浏览 绘本
摘要

大多数情况是正常的,只是偶尔会出现很慢的情况 网络问题 数据库在刷新脏页 获取锁失败,我们可以用 show processlist这个命令来查看当前的状态 刷脏页有下面4种场景(后两种不用太关注“性能”问题):

SQL 语句执行很慢的原因

大多数情况是正常的,只是偶尔会出现很慢的情况

  • 网络问题

  • 数据库在刷新脏页

  • 获取失败,我们可以用 show processlist这个命令来查看当前的状态

刷脏页有下面4种场景(后两种不用太关注“性能”问题):

  • redolog写满了:redo log 里的容量是有限的,如果数据库一直很忙,更新又很频繁,这个时候 redo log 很快就会被写满了,这个时候就没办法等到空闲的时候再把数据同步到磁盘的,只能暂停其他操作,全身心来把数据同步到磁盘中去的,而这个时候,就会导致我们平时正常的SQL语句突然执行的很慢,alter table 可能造成脏页过多。所以说,数据库在在同步数据到磁盘的时候,就有可能导致我们的sql语句执行的很慢了。

  • 内存不够用了:如果一次查询较多的数据,恰好碰到所查数据页不在内存中时,需要申请内存,而此时恰好内存不足的时候就需要淘汰一部分内存数据页,如果是干净页,就直接释放,如果恰好是脏页就需要刷脏页。

  • MySQL 认为系统“空闲”的时候/ Master Thread:这时系统io压力不大,每秒或每十秒的异步刷新操作

  • MySQL 正常关闭的时候:这时候,Mysql 会把内存的脏页都 flush 到磁盘上,这样下次 mysql 启动的时候,就可以直接从磁盘上读数据,启动速度会很快。

在数据量不变的情况下,这条SQL语句一直以来都执行的很慢

  • 没有用上索引:例如该字段没有索引;由于对字段进行运算、函数操作导致无法用索引。
  • 数据库选错了索引

有索引但是最终却选择全表扫描的原因:

例如以下SQL:

select * from t where 100 < c and c < 100000;

索引的选择判断来源于系统的预测,也就是说,如果要走 c 字段索引的话,系统会预测走 c 字段索引大概需要扫描多少行。如果预测到要扫描的行数很多(大概接近于20%),它可能就不走索引而直接扫描全表了。因为索引c将标识多一次的辅助索引的查询,造成IO的增多。

系统判断是否走索引,扫描行数的预测其实只是原因之一,这条查询语句是否需要使用使用临时表、是否需要排序等也是会影响系统的选择的。

您可能感兴趣的文档:

--结束END--

本文标题: SQL 语句执行很慢的原因

本文链接: https://www.lsjlt.com/news/5575.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql语句执行缓慢的原因分析
    这篇文章主要介绍“sql语句执行缓慢的原因分析”,在日常操作中,相信很多人在sql语句执行缓慢的原因分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”sql语句执行缓慢的原因...
    99+
    2024-04-02
  • Python中一条SQL语句执行得很慢的原因有哪些
    Python中一条SQL语句执行得很慢的原因有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考...
    99+
    2023-06-02
  • 腾讯面试:一条SQL语句执行得很慢的原因有哪些?---不看后悔系列(推荐)
    说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。 之前腾讯面试的实话,也问到这个问题...
    99+
    2024-04-02
  • pycharm的运行很慢的原因
    造成 pycharm 运行缓慢的原因包括:硬件限制:cpu 性能低、内存不足和存储空间不足。软件相关问题:插件过多、索引问题和项目大小过大。项目配置:python 解释器配置不当、文件监...
    99+
    2024-04-25
    python pycharm
  • sql语句执行过慢如何优化
    优化 SQL 语句的执行速度可以采取以下几种方法:1. 索引优化:确保表的关键字段上创建了正确的索引,以加快查询速度。可以使用 EX...
    99+
    2023-08-19
    sql
  • MySQL慢SQL语句常见原因是什么
    这篇文章主要为大家展示了“MySQL慢SQL语句常见原因是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL慢SQL语句常见原因是什么”这篇文章吧。1...
    99+
    2024-04-02
  • ubuntu运行很慢的原因有哪些
    Ubuntu运行缓慢的原因可能有以下几个方面:1. 系统资源不足:如果计算机的内存(RAM)、处理器(CPU)或硬盘空间不足,会导致...
    99+
    2023-09-07
    ubuntu
  • SQL语句解析执行的过程及原理
    目录一、sqlSession简单介绍二、获得sqlSession对象源码分析三、SQL执行流程,以查询为例一、sqlSession简单介绍 拿到SqlSessionFactory对象...
    99+
    2024-04-02
  • SQL语句执行顺序
    sql语法的分析是从右到左 ...
    99+
    2024-04-02
  • EntityFramework中执行sql语句
    一、为什么要在EF中执行SQL语句 使用EF操作数据库,可以避免写SQL语句,完成使用Linq实现,但为什么还要在EF中执行SQL语句呢。如果要写SQL语句,完全可以使用ADO.NE...
    99+
    2024-04-02
  • 电脑运行很慢是什么原因
    电脑运行缓慢的原因可能有多种,包括以下几个方面:1. 硬件问题:例如电脑内存不足、硬盘空间不足、硬件老化等。2. 软件问题:例如运行...
    99+
    2023-09-07
    电脑
  • mysql的sql语句执行流程
    1、client和server建立连接,client发送sql至server(对应连接器这一过程) 2、server如果在查询缓存中发现了该sql,则直接使用查询缓存的结果返回给client,如果查询缓存中...
    99+
    2024-04-02
  • navicat执行sql语句的方法
    小编给大家分享一下navicat执行sql语句的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!首先要在navicat的【查询编辑器】中编写可执行的sql语句当我们在【查询编辑器】中编写完S...
    99+
    2024-04-02
  • count(*)很慢的原因是什么
    这篇文章主要介绍“count(*)很慢的原因是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“count(*)很慢的原因是什么”文章能帮助大家解决问题。以下所有的...
    99+
    2023-01-31
  • dbvisualizer怎么执行sql语句
    要在DBVisualizer中执行SQL语句,可以按照以下步骤操作:1. 连接到数据库:在DBVisualizer中,选择菜单栏的"...
    99+
    2023-10-19
    sql
  • psql怎么执行sql语句
    在psql中执行SQL语句有以下几种方式: 在命令行中直接输入SQL语句: psql -c "SELECT * FROM...
    99+
    2023-10-26
    psql sql
  • SQL查询语句执行的过程
    目录MySQL基本架构Server 层1、连接器2、查询缓存3、分析器4、优化器5、执行器SQL语句举例: SELECT * FROM `test` WHERE `i...
    99+
    2024-04-02
  • 关于Mysql使用left join写查询语句执行很慢的问题解决
    目录 (一)前言 (二)正文 1. 表结构/索引展示 (1)表结构 (2)各表索引情况 2. 存在性能问题的SQL语句 3. 解决思路 (1)执行计划思路调优 (2)字符集匹配调优 (三)总结 1. 关于执行计划中TYPE的性能比较 2. ...
    99+
    2023-09-10
    mysql 数据库 sql SQL性能优化 索引
  • MyBatis中怎么执行SQL语句
    在MyBatis中执行SQL语句可以通过Mapper接口和映射文件来实现。以下是一般步骤: 1、创建Mapper接口:在Mapper...
    99+
    2024-03-07
    MyBatis
  • oracle delete很慢的原因有哪些
    Oracle数据库delete语句执行慢的原因可能有以下几个方面: 数据量过大:如果要删除的数据量非常大,删除操作会消耗大量的系...
    99+
    2024-04-28
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作