今天下午改了一下自己正在写的LazyCluster聚类脚本,从rcpt数据库里导出mx记录,在select语句后面加了一个
order by条件,结果脚本跑了一阵子就报错了:
Traceback (most recent call last): File "./contCluster.py", line 621, in main() File "./contCluster.py", line 600, in main mailscnt=toCluster_rcptdb() File "./contCluster.py", line 500, in toCluster_rcptdb cursor.execute(sql) File "build/bdist.linux-i686/egg/MySQLdb/cursors.py", line 166, in execute File "build/bdist.linux-i686/egg/MySQLdb/connections.py", line 35, in defaulterrorhandler _mysql_exceptions.InternalError: (3, "Error writing file '/tmp/MYAkvdjr' (Errcode: 28)")
一查:
$ perror 28
OS error code 28: No space left on device
实在不懂,于是Google了一下发现原来是order by搞的鬼: 当使用order by来排序时,Mysql需要一些临时空间来存储东东,此时若系统空间不足,就会出现往临时文件写内容时报错的现象,于是报出了 Error writing file '/tmp/**' (Errcode: 28)之类的错误提示。
算了,去掉那个order by条件了,对于这么庞大的表格一sort开销也太大了。。。