|
本帖最后由 legsantking 于 2011-12-5 22:22 编辑
产生排序退出一般不会导致数据库崩溃,但是会导致线程被服务器强制杀死,因为使用了过多的资源(一般指的是内存和文件或io时间),在以下情况会导致这个情况发生:
1、没有足够的tmpdir磁盘空间
2、没有足够的sort_buffer_size 空间被分配
3、有其他的线程终止了filesort操作
4、服务器被关闭了,但是一些文件排序未被释放
5、产生了锁超时(比如innodb里面的锁定时长)
6、在查询期间原表或tmp表被损坏
7、在一个或多个子查询中失败,导致在排序阶段的失败(比如在多个子查询中,在某个环节的文件句柄数不足,导致整个排序过程失败等)
一般产生这样的语句说明SQL或者设计实在需要优化了
注:对于大结果集或低筛选率的group by 和order by 或者结合,在请求量大的时候,经常会发生这样的情况。
希望能帮到楼主
|
|