美文网首页
Sql查询慢的原因剖析

Sql查询慢的原因剖析

作者: 麻帅帅 | 来源:发表于2019-10-24 17:01 被阅读0次

    我们做服务端开发离不开数据库操作,那么执行一条sql发现很慢可以怎么解决呢,下面我就来简单的分析下,仅仅是个人见解,如有不对之处多多指教。

    首先sql执行的慢分俩处:要么本身sql写的有问题导致执行起来耗费大量时间,要么sql本身没有问题只是偶尔执行时间缓慢。

    先说sql假如没有问题,就是偶尔会出现慢,那么是什么原因导致的呢。本人觉得大概有2点原因:1、数据库内存发生了脏读,需要刷新;2、由于程序的不健壮导致死锁或锁等待……

    首先,我们都知道数据库在更新或者是插入一条数据的时候,并不会把数据先更新到磁盘里,而是先刷新的内存当中去,而是先将这些数据写入到redo log日志(数据库中的undo日志、redo日志、检查点)当中去。再通过 redo log 里的日记把最新的数据同步到磁盘中去。redo log 里的容量是有限的,如果数据库一直很忙,更新又很频繁,这个时候 redo log 很快就会被写满了,这个时候就没办法等到空闲的时候再把数据同步到磁盘的,只能暂停其他操作,全身心来把数据同步到磁盘中去的,而这个时候,就会导致我们平时正常的SQL语句突然执行的很慢,所以说,数据库在在同步数据到磁盘的时候,就有可能导致我们的SQL语句执行的很慢了。

    其实就是当我们在执行sql时,由于被其他操作导致未及时释放锁,进而产生锁表、锁行的行为,以至于我们在执行sql处于持续等待直到占有的锁释放呗(MySQL锁)。

    Sql本身写的有问题,主要从优化的角度说说,表是否建索引、是否使用锁引。

   

相关文章

  • Sql查询慢的原因剖析

    我们做服务端开发离不开数据库操作,那么执行一条sql发现很慢可以怎么解决呢,下面我就来简单的分析下,仅仅是个...

  • 性能分析与 EXPLAIN 详解

    一、sql查询慢原因及优化 1、导致慢 SQL 的原因 在遇到慢 SQL 情况时,不能简单的把原因归结为 SQL ...

  • sql查询慢的原因

    原因大致有以下几点 ①表数据很多 ②表内无索引或者查询的条件没有建立索引 ③大量使用distinct,group ...

  • 数据库索引相关问题

    如何定位并优化慢查询Sql 根据慢日志定位慢查询sql 使用explain等工具分析sql 修改sql或者尽量让s...

  • Mysql 查询优化的思路

    概述 SQL查询慢的两个原因:搜索慢 、查询的数据太多(IO开销大) 查的数据太多: SELECT 不要跟 * 号...

  • 6.MySQL优化(1)

    本章要点 1.慢SQL2.性能剖析工具 1. 慢SQL 2.性能剖析工具 2.1 pt-query-digest ...

  • MySQL慢查询日志相关笔记

    MySQL优化SQL,针对慢SQL语句的查询及相关配置。相关命令: 需要永久开启慢SQL查询日志,需要在my.in...

  • 如何定位慢查询和如何分析 SQl 执行效率

    定位慢 SQL 定位慢 SQL 有如下两种解决方案: 查看慢查询日志确定已经执行完的慢查询 show proces...

  • 如何定位并优化慢查询SQL

    1.根据慢日志定位慢查询sql 慢查询配置show variables like "%query%"慢查询数量sh...

  • mysql日志相关参数调整设置

    慢sql日志打印 查询是否开启慢日志:show variables like '%query%'; 慢sql开启 ...

网友评论

      本文标题:Sql查询慢的原因剖析

      本文链接:https://www.haomeiwen.com/subject/kisdvctx.html