Mysql查询很慢卡在sending data的原因及解决思路讲解
作者:hhgood 发布时间:2024-01-18 02:40:45
标签:mysql,查询慢,sending,data
因为编写了一个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


猜你喜欢
- 概述在开发中,可能会遇到当页面滚动停止之后执行某些操作的需求。在 scrollend 事件之前,并没有可靠的方法来检测页面滚动是否完成。这意
- CSS 3 + HTML 5 是未来的 Web,它们都还没有正式到来,虽然不少浏览器已经开始对它们提供部分支持。本文介绍了 5 个 CSS3
- 本文实例讲述了python实现超简单端口转发的方法。分享给大家供大家参考。具体如下:代码非常简单,实现了简单的端口数据转发功能,用于真实环境
- TeX 排版中文字体嵌入问题,兼谈不拘小节的中文字体设计原文:http://yulewang.spaces.live.com/blog/cn
- 本文实例讲述了Python高阶函数、常用内置函数用法。分享给大家供大家参考,具体如下:高阶函数:允许将函数作为参数传入另一个函数;允许返回一
- 进程进程就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位,进程是一个动态概念,是程序在执行过程中分配和管理资源的基本单
- 首先说明一下SQL Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成:数据缓存(Data Buffer)、
- 如下所示:# coding: utf-8import osimport psutilimport timedef write_pid():
- 前言最近又多了不少朋友关注,先在这里谢谢大家。关注我的朋友大多数都是大学生,而且我简单看了一下,低年级的大学生居多,大多数都是为了完成课程设
- argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。一、传入一个参数import argpars
- 这是解释器设置问题,在设置里找到interpreter 找到合适的目录就可以了。因为重装了python导致pycharm找不到路径了。另外,
- 1.排序示例表内容见此篇文章Mysql支持数据排序操作,例如,现在我们按照工资从小到大进行排序操作:mysql> select ena
- 1.基于OpenCV的形状检测Python版本目录结构1.1.定义我们的形状检测器类ShapeDetector开始定义我们的 ShapeDe
- 背景终端(命令行)操作是程序员的必备技能,但是你知道怎么通过golang制作出如下命令吗?$ flag girl -hUsage of gi
- Python 在 2.2 版本中引入了descriptor(描述符)功能,也正是基于这个功能实现了新式类(new-styel class)的
- 如我们在之前的教程里讨论的那样,分页可以通过两种方法来实现:默认分页– 你仅仅只用选中data Web control的 智能标签的Enab
- 我就废话不多说了,直接上代码吧!import Imagefrom datetime import datetimeimport osstr
- 1、 在vue文件的html中引入element的上传控件,代码如下:<div> <el-upload action=&q
- argparse模块用法一、 概念argsparse是python的命令行解析的标准模块,内置于python,不需要安装。这个库可以让我们直
- WebSocket - 开启通往新世界的大门WebSocket是什么?WebSocket是一种在单个TCP连接上进行全双工通讯的协议。Web