MYSQL在进行大表查询时报错ERROR CODE 28 即写入文件失败, C:盘空间不足了![经分析是由于我的表中的数据量太大了,有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 子句就不会出现这个问题。补充一句:order by 中的字段均是有索引的,同样都是慢!表的storage engine 也试过不同的类型均是这样的慢。难道大表就不能用ORDER BY语句吗? ORACLE是不是不会出现这种问题,只有MYSQL存在此问题?
SELECT *
FROM TABLE_NAME
ORDER BYE FIELD1, FIELD2.我发现只要带ORDER BY参数肯定会出这个问题,哪怕ORDER BY子句中只带一个字段也是这样的,查询相当相当的慢!最终报错——临时文件无法写入,不带ORDER BY 子句就不会出现这个问题。补充一句:order by 中的字段均是有索引的,同样都是慢!表的storage engine 也试过不同的类型均是这样的慢。难道大表就不能用ORDER BY语句吗? ORACLE是不是不会出现这种问题,只有MYSQL存在此问题?
解决方案 »
- 求一条查询语句
- Oracle2个用户问题
- 64位sqlserver2008数据导出到32位oracle10g怎样提速
- oracle存储过程提示编译错误
- 初学者需求:oracle教程
- 请教高手把这段UPDATE语句精简一下,使其运行效率更高
- 8I客户端能不能连接10G服务器
- 应用程序安装在WIN2003,oracle安装在LINUX上面,为什么应用程序不能连接到数据库呢呢?难道和我的数据库OracleServiceeasdbs.longmay.com.c
- Oracle Enterprise manager 的问题 请帮忙,谢谢!
- 大家帮我看下哦,为什么触发器执行before insert 去更改值,还会有被漏掉的情况啊?
- 用过PLSQL developer 的进!!!
- 求一个超难sql,高人请进。
Oracle里面有临时表空间的,但是如果你排序过多,临时表空间也会被弄慢的,然后你的速度估计依然很慢。