我的解决办法 不是去掉 order 排序
而是先增加where条件 限制查询数量
比如
function shipingzhongcustom_views_pre_view(&$view, &$display_id, &$args)
{
//这个就把默认的查询的数目从当前月的1月1日开始,
//就减少了内存消耗
if( $view->name=='wangshangbaoming' && ($display_id=='page_1'))
{
$filters = $view->display_handler->get_option('filters');
$filters['field_wsbm_time_value']['default_date'] = date('Y-m').'-01';
$view->display_handler->override_option('filters', $filters);
}
}
user warning: Incorrect key file for table '/tmp/#sql_46fd_0.MYI'; try to repair it query: SELE
(2012-06-12 16:09:55)user warning: Incorrect key file for table '/tmp/#sql_46fd_0.MYI'; try to repair it query: SELECT n.*, u.name FRO
当查询数量很大时,(我的数据库70万数据),会导致这个错误,这是MYSQL中的一个bug.
解决方法 :
1. 修复表
check table tablename.
查看表的状态。如果有错误,则需要修复
repair table tablename.
2. 去掉order by , 如果修复表中不起作用,那就把order by 去掉吧
(我的是去掉order by 之后才可以的)。 ordry by 占用的资源还真是多啊。
原来需要查20秒,现在不到2秒。呵呵