首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MyISAM表不断崩溃。我有什么选择?

MyISAM表不断崩溃。我有什么选择?
EN

Database Administration用户
提问于 2012-02-02 15:40:48
回答 2查看 1.3K关注 0票数 2

我的MYSQL表非常大(250 My,大约200米行)。最近,我让它经历了很多并行的过程,进行了大量的读取。

它开始以惊人的规律性锁定和崩溃。大约每周一次。复苏显然很费时。

这是否与超载相一致,还是我应该怀疑另一个原因(例如硬件故障)?

接下来,解决这个问题的最佳步骤是什么?我认为切换到InnoDB可能需要很长时间。我可以拨通访问它的进程,但我不清楚如何才能停止“虐待”。有什么建议吗?

EN

回答 2

Database Administration用户

发布于 2012-02-16 20:38:41

在大多数情况下,崩溃MyISAM表只不过是在MyISAM文件头上抛出泥。它保存文件被打开的次数的运行计数。它在开始时增加,在结束时递减。

您可能需要查看打开文件。限制的值。这是一个不能在mysqld运行时动态设置的选项。它可以在启动时配置。有趣的是它在MySQL文档中的解释:

更改mysqld可用的文件描述符数。如果mysqld给出了太多打开的文件,您应该尝试增加此选项的值。mysqld使用该选项值为setrlimit()保留描述符。如果无法分配所请求的文件描述符数量,mysqld将向错误日志写入警告。mysqld可以使用max_connections和table_open_cache的值来估计是否需要更多的描述符,从而尝试分配超出请求的描述符数量(如果可用的话)。

默认情况下,mysqld根据OS设置此值,以及最大打开文件处理mysqld认为操作系统将给予它多少。

您可以冒险在/etc/my.cnf中增加这个号码并重新启动mysql。正如MySQL文档中所提到的,将发布一个警告。

和你的系统管理员和查看您的操作系统是否可以提高其文件句柄限制谈谈。

一旦您可以启动它,重新启动mysql并查看是否也引发了open_files_limit。

票数 1
EN

Database Administration用户

发布于 2012-02-16 19:09:34

你有没有考虑过分片你的数据库?它可能有助于解决您正在经历的问题,并提高查找时间的速度。

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/12124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档