Mysql查询很慢卡在sending data的原因及解决思路讲解

作者:hhgood 时间:2024-01-18 02:40:45 

因为编写了一个Python程序,密集的操作了一个Mysql库,之前数据量不大时,没发现很慢,后来越来越慢,以为只是数据量大了的原因,但是后来慢到不能忍受了,查了半天,索引能用的都用上了,执行一次还是要3到4秒,不能忍受了。

于是把一些可以缓存的查询全部用redis缓存了起来,大大加速了应用。

但是还是有一些没办法缓存的,或者说,每次查询都是不一样的结果的就没办法了。用navicat的查询概况可以看到卡住的地方是在:Sending data一段,用时3.5秒,占了99%的查询时间。

在网上查了一些,有些是因为sql语句的问题,但是我这个完全没有用到varchar,也没用到in方法。

于是想是不是表太大了,可能没有缓存到内存中,于是先查mysqld进程占的内存,才50多M,明显太少了,那张表的实际容量有200多M,这个可以在navicat的对象一栏看到,应该是每次查都是从磁盘读取,所以很耗费时间,于是查看win10的磁盘IO,发现确实是这样,磁盘IO达到了100%,还是固态硬盘,每秒读取80M左右,难怪这么慢了。

于是查了mysql的配置文件,发现有一项配置才32M,调成512M,重启mysql,搞定这次从3.5秒变成了0.76秒了。

配置项是:


innodb_buffer_pool_size=32M

这是mysql5.7默认的,改成512或1024,再重启即可,看你的硬件配置。

来源:https://blog.csdn.net/hhgood/article/details/79388140

标签:mysql,查询慢,sending,data
0
投稿

猜你喜欢

  • innerHTML 的些摘记

    2009-06-01 15:42:00
  • Python实现将Word表格嵌入到Excel中

    2022-02-10 06:21:49
  • python实现windows下文件备份脚本

    2021-05-06 06:32:41
  • python制作抽奖程序代码详解

    2022-05-04 08:51:18
  • Python中模块string.py详解

    2021-05-20 05:25:03
  • python解释模型库Shap实现机器学习模型输出可视化

    2022-04-27 08:00:10
  • PHP和JAVA中的重载(overload)和覆盖(override) 介绍

    2023-11-01 00:14:33
  • 读写xml文件的2个小函数

    2007-08-23 12:59:00
  • Python中的布尔类型bool

    2023-08-11 13:10:00
  • SQL注入防御:用三种策略应对SQL注入攻击

    2008-12-15 16:31:00
  • python如何进行矩阵运算

    2021-05-01 22:58:25
  • Pandas Shift函数的基础入门学习笔记

    2023-02-16 20:46:12
  • 基于PyTorch实现EdgeCNN的实战教程

    2023-12-30 22:28:20
  • python退出循环的方法

    2022-06-10 07:24:35
  • Flask实现swagger在线文档与接口测试流程详解

    2023-04-29 11:34:17
  • Python深度强化学习之DQN算法原理详解

    2023-03-05 12:02:51
  • 基于python 爬虫爬到含空格的url的处理方法

    2023-04-16 09:55:47
  • PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]

    2024-04-30 09:57:37
  • FrontPage2002简明教程四:网页超级链接

    2008-09-17 11:23:00
  • 解决echarts中饼图标签重叠的问题

    2021-10-22 03:33:33
  • asp之家 网络编程 m.aspxhome.com