什么可能导致 MySQL 在读取查询时崩溃?

什么可能导致 MySQL 在读取查询时崩溃?

所以我有一个相当大的 MySQL DB...总大小为 7 GB,3500 万个 URL。

前几天我查询它(仅使用 SELECT 查询)非常快。我的 ubuntu 冻结/关闭(这是第一次!)并在线说了“恐慌,恢复到文本控制台”之类的话 - 但它确实冻结了。

重启电脑后,数据库中的每个 MySQL 表都正常,除了我正在读取的表。它显示“正在使用”。

知道是什么原因造成的吗?MySQL 肯定足够聪明,知道 SELECTion 何时完成?

编辑:是不是我需要开始运行一个独立的 MySQL 服务器?我的意思是... 在运行我的 PHP 脚本来访问它和 MySQL 必须挖掘如此大的数据库之间,这个服务器几乎一直处于 100% CPU 状态...

答案1

我会说,是的,将文件系统与数据库分开。好吧,如果您使用 MyISAM 表,那么 mysql 将在选择上执行行级锁定。读取应该完全独立于彼此进行,并且不应该有任何问题。是否存在磁盘空间问题或交换空间问题?您应该能够通过 mysqladmin 重置表状态。

另外,您的缓冲区大小值是多少?(查看 my.cf)或 mysqladmin 中的变量。这将让您了解可能发生的情况。最后,/var/log/messages 或 mysqld 日志文件中有什么内容吗?

答案2

我几乎怀疑文件系统损坏了。对文件系统进行 FSCK?日志中是否有导致崩溃的信息?

相关内容