我正在将一个大的csv文件导入到mysql(3000万行)中,我打开另一个终端来显示进程列表。我曾经能够在进程列表中看到行数,但现在,每当我输入命令“show process list”时它就会挂起。我输入了2000万条记录。我必须重新开始吗? iostat的: [user @ gggggg~] $ iostat Linux 2.6.18-308.4.1.el5
avg-cpu: %user %nice %system %iowait %steal %idle
5.02 0.00 0.16 0.87 0.00 93.95
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 2.15 5.31 55.58 8644514 90425752
sda1 0.00 0.00 0.00 2138 5592
sda2 2.15 5.31 55.57 8640178 90419984
sda3 0.00 0.00 0.00 1582 176
top - 14:18:55 up 18 days, 20:00, 2 users, load average: 2.02, 2.09, 2.06
Tasks: 106 total, 3 running, 103 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.0%sy, 0.0%ni, 49.9%id, 49.8%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 8174532k total, 7656780k used, 517752k free, 105904k buffers
Swap: 4257216k total, 88k used, 4257128k free, 6958020k cached
答案 0 :(得分:0)
首先,检查操作系统中的文件大小
如果该表名为mydb.mytable且它是MyISAM,请执行以下操作:
cd /var/lib/mysql/mydb
watch ls -l mytable.*
如果文件大小不断增长,那么你很好
不要忘记检查磁盘空间
df -h
如果在加载MyISAM表时用完了磁盘空间,mysqld就坐在那里。为什么?根据{{3}}说:
如果在向MyISAM表添加行时磁盘空间不足,请执行 发生错误。服务器暂停操作直到空间变为 可用,然后完成操作。
因此,如果数据分区超出磁盘空间,则必须释放一些空间,以便mysqld可以继承LOAD DATA INFILE
。
如果一切都冻结了,你可能必须按如下方式杀死mysqld:
IDTOKILL=`ps -ef | grep mysqld_safe | grep -v grep | awk '{print $2}'`
kill -9 ${IDTOFKILL}
IDTOKILL=`ps -ef | grep mysqld | grep -v grep | awk '{print $2}'`
kill -9 ${IDTOFKILL}
然后,检查您的磁盘空间