无法在这个位置找到: head2.htm
当前位置: 建站首页 > 新闻动态 > 公司新闻 >

MariaDB SQL里如何根据Unix指令来提高速率

时间:2021-01-29 21:49来源:未知 作者:jianzhan 点击:
近期网编接到身旁朋友的意见反馈说成在MariaDB(MySQL)里对联接开展查寻的情况下发觉其特性简直一塌糊里糊涂,令人不忍心直视。网编搜索了材料后发觉了一个非常简易的方法来处理这

近期网编接到身旁朋友的意见反馈说成在MariaDB(MySQL)里对联接开展查寻的情况下发觉其特性简直一塌糊里糊涂,令人不忍心直视。网编搜索了材料后发觉了一个非常简易的方法来处理这一MariaDB SQL速率慢的难题,那么就是根据Unix 指令来运作,随后你能发觉查寻的情况下减少了至少30倍之上,十分令人震惊。

下边便是这一查寻,它是 GHTorrent 剖析的一一部分,我应用了关联线上剖析解决架构 simple-rolap 来完成这一剖析。

 simple-rolap

2个联接字段名都是有数据库索引。但是,MariaDB mits 开展数据库索引搜索来完成联接的。这能够从 EXPLAIN 的輸出看得出来。

EXZ喎?pro/pkqt/QTEFJTiC1xMrks/Y=" src="uploadfile/2018/1115/208442.png" />

mits 有 mits 有 8.47 亿行纪录。网络服务器的运行内存较为小,仅有 18GB。因此极可能是由于运行内存放不下那麼大的数据库索引,必须载入硬盘,因而比较严重危害来到特性。从 pmonitor 对临时性表的剖析結果看来,这一查寻早已运作大半天了,还必须 373 个钟头才可以运作完。

我认为,这一过份了,由于排列合拼联接(sort-merge join)需要的 I/O 時间应当要比预估的实行時间要低一数量数量级。我还在 上寻找协助,有些人得出了一些提议要我试着,但也没有自信心他们可以处理问提。我试着了第一个提议,結果其实不开朗。试着每一个提议都必须最少大半天的時间,之后,我打算选用一种我觉得能够合理处理这一难题的方法。

我将这2个表导出来到文档中,应用 Unix 的 join 指令将他们联接在一起,将結果发送给 uniq,把反复的行清除掉,随后将結果导返回数据信息库。导进全过程(包含复建数据库索引)从 20:41 刚开始,到第二天的 9:53 完毕。下列是实际实际操作流程。

1. 将数据信息库表导出来为文字文档

我先导出来联接2个表必须采用的字段名,并依照联接字段名开展排列。以便保证排列次序与 Unix 专用工具的排列次序适配,我将字段名变换为标识符种类。

我将下列 mits_week.txt 中。

 commits_week.txt

随后将下列 SQL mits.txt 文档中:

 mits.txt

那样就转化成了下列2个文档。

-rw-r r 1 dds dds 15G Aug 4 mits_week.txt

-rw-r r 1 dds dds 93G Aug 5 00:mits.txt

以便防止运行内存不够,我应用 quick 选择项来运作 mysql 顾客端,不然顾客端会在輸出結果以前试着搜集全部的纪录。

2. 应用 Unix 指令行专用工具解决文档

接下去,我应用 Unix 的 join 指令来联接这2个文字文档。这一指令线形扫描仪2个文档,并将第一个字段名同样的纪录组成在一起。因为文档中的纪录早已排好序,因而全部全过程进行得迅速,基本上便是 I/O 的速率。我都将联接的結果发送给 uniq,用于清除反复纪录,这就处理了初始查寻中的 distinct 难题。一样,在早已排好序的輸出結果上,能够根据简易的线形扫描仪进行去重复。

它是我运作的 Unix 指令。

mits_week.mits.txt | mits.txt

历经一个钟头的解决,我获得了要想的結果。

-rw-r r 1 dds dds 133G Aug 5 01:mits.txt

3. 将文字文档导回数据信息库

最终,我将文字文档导回数据信息库。

文本文件导回数据库

结束语

坚信对MariaDB 有一定的掌握的朋友do了解,在理想化情况下,它是能够完成排列合拼联接的,并且还能在预测分析运作時间将会太长的情况下提升器会运作让排列合拼全自动联接。今日给大伙儿详细介绍的应用Unix 指令来提高MariaDB SQL的速率的详细介绍就到这儿了,期待能对有必须的朋友有一定的协助。

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: ajaxfeedback.htm
栏目列表
推荐内容


扫描二维码分享到微信