经分析是由于我的表中的数据量太大了,有200万条记录。当执行完如下SQL后,系统报错ERROR CODE=28,说是在c:\WINDOWS目录下的某个临时文件无法写入了。我看了一下C盘已经没有任何剩余空间了。原因是表太大,所以查询时生成的临时表过大,因此出错。我的C盘有约1G的FREE SPACE.我执行了SQL如下:
SELECT *
FROM TABLE_NAME
ORDER BYE FIELD1, FIELD2.我发现只要带ORDER BY参数肯定会出这个问题,哪怕ORDER BY子句中只带一个字段也是这样的,查询相当相当的慢!最终报错——临时文件无法写入,不带ORDER BY 子句就不会出现这个问题。请问这个问题能解决吗?
SELECT *
FROM TABLE_NAME
ORDER BYE FIELD1, FIELD2.我发现只要带ORDER BY参数肯定会出这个问题,哪怕ORDER BY子句中只带一个字段也是这样的,查询相当相当的慢!最终报错——临时文件无法写入,不带ORDER BY 子句就不会出现这个问题。请问这个问题能解决吗?
这种情况应该是数据库设计的时候就应当考虑。
2 在my.ini中把临时目录指向空间大的磁盘即可。
tmpdir=E:\TEMP2