MySQL 索引创建速度很慢(在 EC2 上)

2024-05-03

我有一张相当简单的桌子

requestparams (
  requestid varchar(64) NOT NULL,
  requestString text,
) ENGINE=MyISAM;

使用“LOAD DATA”填充表后,我正在更改架构并将“requestid”设为主键。

该表有1100万行,数据大小小于2GB(MYD文件的大小)。处理结束时索引文件大小约为600M。

在我的笔记本电脑上创建索引只需不到 20 分钟。但是,当我在 Amazon 的 EC2(中型实例)上运行该过程时,该过程花费了超过 12 个小时。整个过程中,磁盘处于超级繁忙的IO等待状态(如下图所示)top)在 40-100% 之间。 CPU 大部分时间都处于空闲状态。我不认为 EC2 上的磁盘那么慢。

在 MySQL 邮件列表上,一些人建议更改服务器变量 myisam_sort_buffer_size 和 myisam_max_sort_file_size。我将它们分别设置为 512MB 和 4GB。但索引创建同样缓慢。事实上,MySQL的内存使用量很少超过40M。

我该如何解决?

解决方案:增加“key_buffer_size”有帮助。我将此值设置为 1GB,该过程在 4 分钟内完成。确保使用以下命令验证新设置mysqladmin variables命令。


您收到的建议是正确的。我怀疑您所做的更改实际上并未生效。尝试在 my.cnf 中进行更改并重新启动服务器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 索引创建速度很慢(在 EC2 上) 的相关文章

随机推荐

  • JavaScript“可写”属性描述符如何工作?

    为什么 JavaScript 可写 属性描述符不禁止任何属性更改 例如 var TheDarkKnight Object create Superhero name value Batman writable false TheDarkKn
  • ngOnChange 不存储 previousValue 属性

    Angular2 RC4 angularfire2 2 0 0 beta 2 在我的子组件中我无法获取changes posX previousValue存储任何东西 父级 html 的片段 inside ngfor loop posX c
  • 将图像从 JQuery 上传到 Node JS

    我需要从我的网站上传图像文件HTML页 但是 我不会使用form标签 因为还有其他form稍后将用于将数据传递到服务器的字段 文本字段 复选框等 我的后端在Node JS 我想要的只是从Node Js结尾 我怎样才能做到这一点 HTML d
  • 使用 OpenCV 查找重叠/复杂的圆

    我想计算红圈半径 图2 我在使用 OpenCV 的 HoughCircles 找到这些圆圈时遇到了麻烦 如图所示 2 我只能使用 HoughCircles 找到中心以黑色显示的小圆圈 original fig 2 由于我知道红色圆圈的中心
  • 如何使用单元格内的十六进制颜色值突出显示单元格?

    我有一个符号和匹配的十六进制颜色的电子表格 我想用单元格内的十六进制颜色填充单元格本身 或其旁边的单元格 我读过一些有关 条件格式 的内容 我认为这就是实现的方法 我怎样才能达到我想要的结果 条件格式无法实现所有颜色 假设 Row1 包含数
  • 未找到 EOF 标记 - 如何在 PyPDF 和 PyPDF2 中修复?

    我正在尝试使用 Python 将几个 PDF 文件合并为一个 PDF 文件 我已经尝试过 PyPDF 和 PyPDF2 在某些文件上 它们都抛出相同的错误 PdfReadError 未找到 EOF 标记 这是我的代码 page files
  • 如何通过谓词将序列分成两部分?

    如何通过谓词将序列拆分为两个列表 替代方案 我可以使用filter and filterNot 或者编写我自己的方法 但是没有更好的更通用 内置 方法吗 通过使用partition方法 scala gt List 1 2 3 4 parti
  • 为什么 ruby​​ 方法没有词法作用域?

    例如 def test a a is for apple def inner method a something this will refer to a different a end inner method puts a end 这
  • 将 JSON 数据从服务发送到 Android 中的 UI

    要求是 我有一个后台服务 在该服务中我正在执行 REST 调用来获取 JSON 数据 我想将 JSON 数据发送到 UI 并更新内容 我可以使用的一种方法是将整个 JSON 字符串存储在 SharedPreferences 中并在 UI 中
  • 使用R中的XLSX包在Excel中打印data.frame时出错

    数据框是可见的 没有任何错误 但是 当使用 XLSX 包的 write xlsx 函数打印相同内容时 会出现错误 Error in jcall cell V setCellValue value method setCellValue wi
  • DragTarget onWillAccept 和 onAccept 未触发

    我从 Flutter 开始 无法使用拖放功能 我遵循了文档 但不知道我做错了什么 此示例应用程序显示三个正方形 蓝色是可拖动的 其他的都设置了 DragTarget 一个在方块内 一个在方块外 当我拖动蓝色方块时 它会打印拖动开始的信息 但
  • Z3统计中内存使用量的单位是什么?

    z3 统计中测量内存使用情况的单位是什么 是MB还是KB 记忆到底意味着什么 是执行期间的最大内存使用量还是所有分配的总和 它是执行期间最大堆大小的近似值 并通过 cmd context cpp 中的以下函数将其添加到统计对象中 void
  • 调度队列:如何判断它们是否正在运行以及如何停止它们

    我只是在玩 GCD 并且编写了一个 CoinFlipper 玩具应用程序 抛硬币的方法如下 void flipCoins NSUInteger nFlips Create the queues for work dispatch queue
  • flash/flex:渐进式下载与 rtmp

    我试图理解并真正确定何时在 Flex flash 中使用渐进式下载与 rtmp 看来主要的一点是 rtmp 不与 http 一起提供服务 而渐进式下载则由 http 提供 由于它不是 rtmp 因此资源受到保护 因为无法从 swf 外部连接
  • 如何检查数据行中是否存在具有给定名称的列

    我想从数据行中的循环插入一个值 因此在数据行中输入值之前 我想检查表中是否存在特定列名称 请告诉我如何检查 首选 vb net 我得到了答案 并且它正在工作 它是 If dr Table Columns Contains columnnam
  • 未提供 Bouncycastle 加密算法

    我正在尝试将 BouncyCastle 与 android 一起使用来实现 ECDH 和 EL Gamal 我添加了 bouncycastle jar 文件 bcprov jdk16 144 jar 并编写了一些适用于我的计算机 jvm 的
  • gluPerspective 与 gluOrtho2D

    我查看了 MSDN 上关于这两个函数的文档 但是 我不太明白这两个功能之间的区别 一个是用于设置 3D 相机视图 另一个是用于设置 2D 相机视图 如果能得到解答就太好了 预先感谢您的评论 正交投影基本上是没有透视的 3D 投影 本质上 这
  • Jenkins 管道中的导出命令

    如何在 Jenkins 管道中添加 导出 unix 命令 我里面有一个詹金斯 舞台 和 步骤 导出命令的语法是什么 我需要使用导出命令设置环境变量 PATH 您可以更新 PATH像这样 pipeline agent label docker
  • 使用perl求中位数、众数、标准差?

    我有一个数字数组 计算数据集的中位数 众数和标准差的最简单方法是什么 Statistics Basic Mean http p3rl org Statistics Basic Mean Statistics Basic Median htt
  • MySQL 索引创建速度很慢(在 EC2 上)

    我有一张相当简单的桌子 requestparams requestid varchar 64 NOT NULL requestString text ENGINE MyISAM 使用 LOAD DATA 填充表后 我正在更改架构并将 req