当前位置:首页 > 日记 > 正文

解决mysql发送数据慢查询的方法与思路

解决mysql发送数据慢查询的方法与思路
最近帮助定位一个mysql查询非常慢的问题,定位过程集成了多种方法、理论、工具,非常有代表性,值得大家分享。

{问题现象}

使用狮身人面像来支持倒排索引,但是当狮身人面像从MySQL查询源数据时,有成千上万的查询,但是查询速度非常慢,大约是4~5分钟。
{处理过程}

1)解释

在第一个问题中,索引没有构建,所以解释被用来查看查询计划。结果如下:
从解释的结果来看,整个句子的索引设计没有问题。除了第一个表外,其他表也是通过索引访问的,因为业务需要扫描整个表。
2) show processlist;

解释看不到问题。那个地方慢吗

所以我认为使用显示列表来查看SQL语句的执行状态,结果如下:
发现了很长一段时间,查询处于发送数据状态。

找出发送数据状态的含义。原始状态的名称很有误导性。所谓发送数据不是简单地发送数据,而是收集和发送数据。

这里的关键是如何收集数据,原因是:MySQL索引在查询结束后完成,MySQL得到了一堆ID,如果不在索引中列出,MySQL需要返回数据行,将需要返回的客户端数据读出。

3)显示配置文件

为了进一步验证查询的时间分布,使用显示配置文件命令查看详细的时间分布。

首先打开配置;

执行查询后,使用show配置文件查看查询id;

查询query_id查看详情显示简介;
结果如下:
从结果中可以看出,发送数据的状态执行216s
4)检查对比
通过这些步骤,已经确定慢查询是因为在发送数据状态上花费了大量的时间。结合发送数据的定义,将目标集中在查询语句的返回列上。

经调查,最后决定在说明栏,这是设计如下:`描述` varchar(8000)默认为空的评论,游戏说明。

因此,需要对比一下结果不返回描述的结果:
你可以看到,当你不回的描述,查询时间只需要15s,它返回时,它需要216s,两者之间的差别是15倍。
{原则研究}

这个问题很清楚,但原则上我们需要继续探索。

淘宝给出的原则很好的解释:InnoDB使用大字段的文本,对一些斑点最好的建议

关键信息是,当InnoDB的存储格式row_format =紧(或row_format =冗余),InnoDB将只存储的第一个768字节的长度,和剩余的数据将被存储在溢出页。

我们使用show表状态来查看表的相关信息:
可以看出,平均行是1.5K左右,也就是说,1 / 10店将利用溢出存储。一旦以这种方式存储,当返回数据时,数据将被随机读取,从而导致性能急剧下降。
此外,在测试过程中,发现无论多少次的判决执行,甚至整个表的SELECT *倍,该语句的执行速度变化不明显,数据和索引表的总计达150m左右,而整个InnoDB缓冲池有5G,这是足够多的缓存整个表。如果溢出页被缓存,则性能应该大幅度提高。

但结果没有得到改善,所以从这个试验我们可以看出,InnoDB没有缓存溢出(溢出页)到内存页。

这个设计是合理的,因为溢出页是存储在大数据,如果放在缓存中,会有一个大的数据集(BLOB,文本、varchar)查询,可能所有的缓存更新,这将导致其他一般的查询性能急剧下降。

{解}

找到问题的根本原因,解决办法并不困难:

1)在查询时删除描述查询,但这仅限于业务的实现,可能需要较大的业务调整。

2)优化表结构,分到另一个表的说明。这种变化较大,需要对现有业务进行修改。如果业务继续对描述信息进行查询,优化后的性能将不会得到很大改善。

以上是本文的全部内容,希望能对大家有所帮助。

相关文章

PS轻松打造迷人的水下场景

PS轻松打造迷人的水下场景

水下,场景,迷人,轻松,电脑软件,本教程教你使用PS图象处理软件轻松地创建一个迷人的水下场景。通过PS面具、滤镜、笔刷等,我们教你美丽而神秘的海底沉船。我们可以从感兴趣的用户那里学习ps。 作者将教用户如何用强大的水下场景轻松创作,没有…

PS图象处理软件创造优良的水下壁纸

PS图象处理软件创造优良的水下壁纸

壁纸,创造,水下,图象,处理软件,1。创建一个新的空白文档,用蓝色到深蓝色渐变垂直填充文档,并在文档中添加一个适当的内部发光层样式(深蓝色)。 2。新建一个图层,在图像中心拉出一个小圆圈,白色到透明的径向渐变。 3、将变形工具传递到垂直方向上…

CSS实现在一个IE6网页底部的一个空

CSS实现在一个IE6网页底部的一个空

方法,网页,空白,电脑软件,CSS,昨天当我们优化的主题,我们意外地发现在IE6的bug的img标签。当使用块级容器包围img标签,会有多余的5px空白在容器的底部在img标签底部的IE6。例如,Web页面中有以下结构。 xml代码将内容复制到剪贴板。 相应的CS…

用PS设计精美海报

用PS设计精美海报

海报,精美,电脑软件,PS,既然海报不差,我们都惊叹海报的美丽,但很少有人自己设计海报,现在让我与大家分享海报设计的过程和方法。 步 第一步是一个广泛的400px 600px高度创建新文档。 第二步,使用渐变工具,填充背景色。 第三步,一个新的图层,在使…

用毛笔格式化excel的excel库

用毛笔格式化excel的excel库

格式化,电脑软件,excel,现在在这个时代的Excel是一种被广泛使用的三Excel办公软件,有多种功能,可以帮助用户对数据的编辑和处理,这是常用的在下面的格式刷的功能,是以Excel格式刷小编带来希望,阅读后激发你! excel使用格式化画笔的方法: 格式画…

如何在一个表中的Dreamweaver排版

如何在一个表中的Dreamweaver排版

如何在,电脑软件,Dreamweaver,我们使用的大多数在Dreamweaver是形式,那么我们怎么排他,你看我做什么。 1,打开计算机的Dreamweaver主程序,然后建立一个新的空白HTML。 2,在新建之后,我们点击顶部的按钮,右边的插入选项也可以插入。 三.选择下面的…

PS图象处理软件多效闪蒸

PS图象处理软件多效闪蒸

闪蒸,图象,处理软件,电脑软件,PS,ps多效闪光处理 启动PS图象处理软件和打开图片。同时按下Shift + Ctrl + N创建一个新层。 然后按Shift F + 5同时填充图层,可以选择前景、背景颜色,也可以自定义模式。 小编辑器选择一个古董定制设计。点击O…

PS图象处理软件做了一个漂亮的紫色

PS图象处理软件做了一个漂亮的紫色

兰花,图象,处理软件,紫色,蝴蝶,花的部分似乎比较复杂,但制作的方法是很基本的:首先,有必要把花部分分割成单个的个体,然后形成颜色,描述细节,渲染高光。 最终效果 1,构建一个新的1024×768像素文档,选择渐变工具,颜色设置如图1,将图2所示的径向渐变…

如何在WPS表格出口pdfwps表教程

如何在WPS表格出口pdfwps表教程

教程,出口,表格,如何在,电脑软件,对于WPS表单的生成,如何导出下面的PDF是介绍如何在WPS表单中导出PDF的方法! WPS表导出PDF方法: 1。打开WPS表格文件(或Excel表格文件),你需要将与wps2012。 表2。选择WPS >保存为(A)- PDF输出格式 三.选择输出范…

Word如何将两列划分为目录字常见问

Word如何将两列划分为目录字常见问

常见问题,如何将,划分为,目录,电脑软件,有时,当我们编辑Word文档时,我们会涉及许多目录,所以在许多情况下,我们将文档分成两列,并插入相应的文档目录。 将两列插入单词中的目录的步骤 第1步:打开需要编辑的文档,最重要的是选择首页上的空白内容,…

如何PS手绘龟背竹的叶子

如何PS手绘龟背竹的叶子

手绘,叶子,龟背竹,电脑软件,PS,PS可以用来做很多材料,当然,工厂就是其中之一,今天给大家分享如何使用PS让龟背竹。Monstera是阔叶植物,适合家庭栽培。 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1、我们…

教程Excel2007教程为Excel2007替换

教程Excel2007教程为Excel2007替换

替换,教程,使用教程,功能,电脑软件,在excel中,经常需要使用替换函数,如何操作替换函数。这是一个在Excel2007替换函数共享萧边你阅读和学习教程。 在Excel2007中替换功能的使用教程: 使用步骤1替换功能:打开Excel表格,按键盘上的Ctrl + f 打开…